origin refactored 3