Refactored menu factory