split up systems into different files. who knows if this will compile?