Consolidated only

Progress PR, do not merge yet.

The changes are complete but require review.

Unit tests need to be updated to match new functions.
Yeah, this sounds good to me.