refactoring, upgrade dependencies