new validation (non circular)