split some project
big refactor first step
refactor final step