More efficient implementation with virtual rendering. This implementation reduces the complexity from linear to constant.
This version still needs lot of tweaks, this is just im=nitial commit