Forgot to call failure block on main thread
Major refactor
Sorry for terrible comment, this is what happens when I'm playing around
and don't focus on the current task :P