first functions implemented
first functions implemented