is wrapper function needed?