accept multiple datatypes