redisgn the promotion class