design improve and bug fix