Separate movable components into IMovable and improve class access permissions.