break up main.rs so the software isn't a single rust source file, making this easier to work with in the future