pass all the specs
refactor phase6