Переделан swap, конструкторы