documenting api, starting to implement