support binary protocol