makes sense, I'll change it later. But I'd keep the explicit checks for  the 2D case