strart refactoring