add in data type check