Added new abstraction layer