adapter & proxy