refactoring: use position