doc for interfaces