comlpeted functions