+ implementation of some functions