Service objects refactored on the basis of the active_pattern gem's ActivePatterns::BaseService class