stack, keep tracking the path, note: java clone method