Add header we probably won't end up needing
Rewrite to reduce layers - msvc template diagnostics are bad.