a little bit initialization refactoring