Some initial work on api v2 abstraction