encapsulating controller