done this as constexpr