feat: add ability to validate as you type