added has_value