cleanup and add tests for draggable()