updates to api, directives, tests