creating init stuff, setting up subs and junk, moving stuff into the init