removed args.push for index, replaced .apply with .call