po refactor