refactoring
[wip] multi stages
wip
wip
add stage2