Ruby style: prefer `fail` over `raise`
Ruby style: use parens on non-keyword-like method calls
Ruby style: prefer `class << self` for complex class methods
Ruby style: remove unnecessary curly braces
Prefer require_relative