add code cate class with optional parameters