add issue 3,4
重構