refactoring: separate shapes.move and shapes.move and use shape.move as an internal event while