implement main controller, view, and search factory skeleton