user message no longer sent directly to buildMessage, it is extracted from self