add json.go and type.go