added an instance method for reconstructing a version, and enhanced an existing spec