add Z function