API request handlers split into multiple files