controllers and types