split most of it into files
stuff