fixed pointer arith the other way around
added constexpr tests and refactored