some functions are implemented