adds support for lots more datatypes like datetime and smallint, and adds tests to make sure they worked