move everything to its own file, easier to manage