for new protocol