New implementation of dragging. Still to be tested extensively.