should these be all constexpr ?