new supply function added