add functional programme