refactoring + added DragListener