added hill climbing and iterative optimiser