E.g. the `go_type_name` has nothing to do with type like StringObject, we should move that into `ComplexObject` class's definition.