1. Refactored so that Collect always returns a value. Use Failures to determine if value is valid