What are user defined data types and when you should go for them?