Large re-org relating to issue #12.