что то я намудрил, но хотелось бы уже допилить задачу.