Refactor GC to use scan helper