moving functions about, in order to get rid of problems with function declarations