3-6 Done. with all refactorings but step2.