validate instead of manual checks