call .revive() last on object .reset()

I was having some strange bugs because revive was the first being called in reset() I think it's sane to call it last after setting all the variables.
Merge pull request #1313 from eka/patch-1

call .revive() last on object .reset()