updated my code. I followed your suggestions. But modify code one by one messed code up. So I merge all related commits into one commit. Sorry for this.