I believe we can be more consistent and formulate a better separation of concerns which in-turn leads to better maintainability and testability. Below I have designed what I believe to be an ideal design/split for a slice of functionality on the Next Platform but is applicable across the rest of Next. Would like to discuss this with you but wanted to get some of it down on paper as I think it's easier that way.
Taking the premium barrier as an example: