factorize VARIANT2 (smaller and slower)