Refactor to minimize differences with FastChatMCAM

Preparation for merging