add support for custom types
update history