init
refactor