`TYPES` is an array of classes of datatypes? Just reading the code sequentially. So your `_fetch_datatype` just returns the contents and this constructs a datatype object?  Why not have the `_fetch_datatype` just build the object you want?