most functions are done