Added some Doctrine-inheritance style interval types and that. Whenever I use inheritance I feel a bit yucky. Seems to be quite hard to injectify though so I'll go with it for now.