fix all bugs
code refactoring