Done.

Need to tweak the UI and the defaults.
Merge branch 'final_Solution_MS'