version before refactoring