refactor programp