UAR-417 - Refactoring since inheritence was getting overly complex, moving to composition instead.