A bunch of untested code for the FaucetAndWater model (and supporting classes)