Improve and bug fix