Big refactoring of proxy code.