First iteration of API surface and unit tests