initialization refactoring