implemented client side rate limiting

protocol seems to be working fine