Second abstraction layer added.