datatypes and interp function