more refactoring for proxy extensions