add drag-drop
use coffeescript, add component preview
update ui