Adds elitism
Adds logging and verbose flag
Fixes pass-by-value reference problem