return early when possible