protocol overwriting