initial go at A*
use makeKey function instead of building string hashkeys on the fly