Must admit, I am pretty pleased with the C++11 default templating.

Added more decode support, plenty of them are untested.