add category extension protocol