new implementation partial complete