remove some extra functional & refactoring