add Controller concept and ControllerDemo