complete set of functions