refactoring for pseudo-2