Despite a rather self-indulgent use of CGI, some stupid 'rewinds' to show us things that happened (which we already worked out for ourselves) and a totally expected plot twist, still a decent flick. The rather sappy ending is ruined by bad dialogue and worse acting, which makes it hilarious.