add walker, fixed some bugs