work on cpp version, protocol & client+server layers