Initial UI Setup

Merge the UI components into master
This is needed in order to ensure that, when the object is dropped, the object will be in the same position relative to the mouse position as when the drag started. In other words, we have to center the object on the mouse in the same way it was positioned when the drag started.