toward a draggable base component