using protocol system to simplify networking #3