Split solver/optimiser into separate repo