beginning of zoom,bmp changes, and abstraction