Initial commit

Preliminary API in include/ and a single test written using this API.