promotion functionality complete