expedriemnt using Common::ComparerWithWellOrder::Compare and Common::ComparerWithEquals::Equals for Optiojnal