did for 2d; looping is nice