add controller.h prototype