update with scan implementation