Reconfigured the implementation.

We're no longer class-based, we're value-based, since that's what IE8
uses. Maybe I'll revert this in the future.