common refactored