added promotion factory