add wrap functions