refactor advance