mostly implemented... missing overall fitness calculation