added rest of the functions