create user-customizable fields and add protocol