Scan implementation