support for multiple retinas, variable size, and better downsampling to fix the demo