Extract to a function
Change to tri-state
Crawling
Rename to reflect the program better