added binary protocol