changed api abstraction level