Factory pattern using enum