Add support for nested or composite errors
Make assumption explicit and error out if violated