added abstraction of a 2d image, that can be passed around