protocol seems pretty good