functional chain