Split the verification and commands for the Cash contract into a new AbstractCashLike class, and make Cash a concrete implementation of that class, specialised for dealing with Currency as the underlying token.