Major reorganization to allow for versioning.