added some documentation on the interface