implement proxy base