created an outline.
once merge and rebranch.
socket listened.
change data-structure.
merge chat_api: change data-structure.
...
finish chat_data module, but test is not enough.