First commit - basic genetic algorithm functionality