revert to earlier version
refactoring