Re-calculate algorithm path before each move

Depends on #45 (closed) (so we don't have to do the same thing twice)