Define interface

This adds the definition of the public interface. Comments welcome!

@neithernut