lots of provisions for IE8