Updated to instantiate any object that responds to initWithAttributes as fallback