crawler refactor