Fixed compiler warning.
Static asserts for arg counts, compiler warnings.
Rewrote the domain initializer hack so its placed outside the domain class.
Would require conditional typename keyword otherwise.