total refactor, working crawl