любую проблему можно просто и красиво решить, если добавить новый абстрактный слой

единственная проблема которая не решается медом добавления абстрактных слоев - проблемма слишком большого числа абстрактных слоев