requireWrapper pattern added