protocol module