update dependencies and refactoring