really could do with getting type converters more formally implemented and tested