refactoring toward great unification