fix traverse bug