using constexpr instead of enum