put all of the functions at the top