Refactoring: Reverted the template parameter design to TTP due to unresolved problems with gcc. Stable {msvc-9.0 r+d, gcc-3.4.4}