more work on complex data types