work on custom data types -- in progress