updates. before refactoring