IValue should inherit IValueBase