Give credit to @ashmind for interface proxy