before position refactoring