added a lot of validation for required fields for nested attributes, added support for multiple source attributes, added a lot more unit test for new features