core controller and model