lots of changes

drag modes
command pattern