refactored peeling in Proxies
made possible proxying inaccessible classes: Collections.unmodifiable*, Arrays.asList