factored out averaging by is2n