this doesn't need to support anything lower than IE9