"Prior to 2005, the Canadian Intellectual Property Office (CIPO) applied a fairly restrictive approach to the Schlumberger decision, holding that computer programs per se are not patentable in Canada, because they are considered to be a mere scientific principle or abstract theorem. However, Canadian patents have been granted for systems and devices that use software. In one case, the inclusion of a specific piece of conventional computer hardware, namely read-only memory (ROM), was sufficient to render the ROM that stored the novel software program patentable. Since 2005, CIPO has loosened its interpretation of the Schlumberger decision. CIPO guidelines now state that for a software invention to be patentable, it must be "an act or series of acts performed by some physical agent upon some physical object and producing in such object some change either of character or condition" and "it must produce an essentially economic result in relation to trade, industry or commerce." The requirements of "physical agent" and "change" are aspects similar to the machine-or-transformation test now applied in the United States."