Restful authentication refactoring

Hi guys, this is more an RFC then a request for help ... this is the code generated by restful authentication:

   def create      logout_keeping_session!      @user = User.new(params[:user])      @user.register! if @user && @user.valid?      success = @user && @user.valid?      if success && @user.errors.empty?        redirect_back_or_default('/')        flash[:notice] = "blabla"      else        flash[:error] = "blabla"        render :action => 'new'      end    end

It seems incredibly redundant to me ... This is how I refactored:

   def create      logout_keeping_session!      @user = User.new( params[ :user ] )      if @user && @user.valid?        @user.register!        redirect_back_or_default( '/' )        flash[ :notice ] = "blabla"      else        flash[ :error ] = "blabla"        render :action => 'new'      end    end

I can't understand why it checks 3 times if the object is valid, and even less that weird "state" variable it sets. I don't see where it saves, but from my understanding of AASM the object is saved when the state change happens, probably using register! is a good idea. Maybe technoweenie is reading and can enlight me about the code duplication, if it's really needed, and people with more experience with restful_authentication can give me a suggestion. I imported specs and all tests pass, so everything should be fine.

TIA,    ngw