support for multiple datatypes