produce 1st function