Add guard
Add dependencies
Add attempt_all