broke out the code into individual files to fit personal style