re-implemented "-" using polymorphic()