Separating into files
Holy crap the tests pass