This is great. Is there anyway you could use data types other than string? The way it's currently setup makes it hard to analyze.
But if you wanted to do it, it's pretty straightforward.
In the meantime I haven't found it to be too hard to just INTEGER(field) and FLOAT(field) wherever I need to.