with test cases for other data types