use precomputed lists