functions implemented
functions implemented