add references
add static asserts for exponent values