Define interface

This adds the definition of the public interface. Comments welcome!

@neithernut 
What does the functions signature mean here? I think there is something missing in the documentation