[feature] add type field