Gave it a more formal overhaul

Starting to get something together now.

Refactored code and added some file structure