refactoring drag behavior yay its working