@domcleal, I applied the patch and you're right, it's not autoloading, so I get an uninitialized constant PowerManager::SUPPORTED_ACTIONS when it's in base.rb.  If I type in the console PowerManager::Base (loads it) and then PowerManager::SUPPORTED_ACTIONS, it works.  In short, keep it as a separate file in either /lib or /app/services.  I don't think it's crucial.  We can always refactor in the future if we adopt a strict policy.