improve support for containers containing optionals
equality operator for optional