Allow conditional validation; Refactor; Don't supply validator when it's already available