will hard code each protocol;generalization failed