delegate how to extract width and height to prototype methods, this allows easier subclassing and extension