restructured wrapper