implemented promotion