working on complex data types