Observable which implicitly calls setChanged when notifyObservers is called
Adjusted offset limits to allow for scrolling (within padding) even when fully zoomed out
Vector utility functions