implemented hill climbing optimiser, not fully working though