Separated object selection.  Major refactor