Breaking change to API to become more expressive (see #8). Add support for upscaling.