+ interface and implementation of some functions