- Since we're best-first, we only have to visit each node one. Huge
  performance improvement with the list of visited to nodes to not
  visit again
- Use raw pointers internally to avoid lots of silly ref counting