I like the idea so far. It moves a lot of code out of the inheritance, which is good!