it's great.  I would get of line 220 and just do 

```ruby
if args.delete(:no_current_type) || card.new_card? || ...
```

but that's stylistic and not necessary.