consider proxy implementation refined