smoother movement and refactoring