McLaren challenges Ferrari and Red Bull