implements initial version of Sover.java. Not covered by tests yet.