implement new validation system