refactoring arrow