final pass , fix two bug
have bug