improved fitness functions