drafted really lousy Evolver implementation