init
refactoring