Added caches and can pass start vertex