make more configurable, add support for excanvas (IR canvas polyfill)