initial support for more powerfull api abstraction