further abstracted api

defined by single json object now. changes are propagated through the
whole application. client and server