refactor all
init
new architecture