Update Ed's code, which now works with reduced visibility.

However, the Solution constructor is now public. This was unavoidable.