In order to streamline algorithms which use the CPD, it would be nice to overload the * operator to call the the correct form of contract