fixed wrap function