separate responsibilities so that EnVistasWindows do not need to know about where data is coming from. EnVistas class now does that.
made atomic, what's up?
added some thread-safety comment
upgrade to v120
caches the result of shapeArray.