Yeah, you're right about destructive. I think I was just using the wrong term them. I've always understood "dangerous" and the use of ! to mean the method could potentially manipulate the object or params being passed to it. 

From Github's [community style guide](https://github.com/styleguide/ruby):

> The names of potentially "dangerous" methods (i.e. methods that modify self or the arguments, exit!, etc.) should end with an exclamation mark. Bang methods should only exist if a non-bang method exists. ([More on this](http://dablog.rubypal.com/2007/8/15/bang-methods-or-danger-will-rubyist)).

These will all be internal methods, so I don't think it's really a big deal either way. I'm just trying wrap my head around how we're using it here and verifying that we're applying it consistently.