add more generic convertor