isolate draggable and resizable functionality into components and ensure proper event binding/unbinding