Rewritten code

Allows better fitness function usage, added some optimizations, started implementing paper fitnesses