adding draggable
adding draggable
abstracting code even more

added self