wrapped composition in function