Added exception for negative fitness, and new default arguments