actual required funct