failing early when possible