Major updates to the API

Update to the api

Signed-off-by: Matthew Potter <mdpotter@gmail.com>