add 2D helper function