refactor positions for shelve mode