changed into several files, fixed stuff, etc