refactored underlying object to be a hash instead