much faster, fixed blending problems, rewrote cache system