some another moving and refactoring