Do big refactor for spec