-- refactoring to new structure