scan singles refactor