Split up code into 3 separate files for easier interface into NEAT