Wondering over the exclamation mark here - the rule that I know is to only create bang methods if there is a less dangerous version of the method (without the bang) and the bang method marks the more "dangerous" one. Like in ActiveRecord where `save` returns `false` when it fails and `save!` raises Exceptions.

Yes I love discussing code style and learning :)