refactoring
implemented move