first commit with all the functions added