add field default and type check, add case