Break up chat_request() into smaller generics
#426
Merged
chat_request() into smaller generics
#426