working but breaks strict-aliasing
almost working, except for strict aliasing
fix bit twiddling errors
clean up some unnecessary methods
use an unisigned next rather than an iterator/pointer
a few comments
a few comments