Given a plant and a desired specification our goal is to construct a controller system which, when interconnected with the plant, yields a system that behaves like the desired specification. We can always construct the canonical controller earlier introduced. For linear systems there exists a controller which when interconnected to the plant yields the desired behaviour if and only if the canonical controller is itself one such controller. In this paper we extend this result to nonlinear systems. It turns out that one has to look at the canonical controller together with its subsystems. We obtain necessary and sufficient conditions for the existence of a controller for a class of nonlinear systems. We end with examples which show that in ce...