one controller per request type