add sharding to protocol