     # Notes are warning/beware messages about the implementation.
     notes: (notes) ->
         return @$notes if arguments.length is 0
-        isNotes = _.isString notes
         noNotes = "The notes is not a string"
-        throw new Error noNotes unless isNotes
+        assert _.isString(notes), noNotes
         @emit "notes", arguments...
         @$notes = notes.toString()
 

    # Each failure consists of the expected code and reason for fail
    failure: (code, reasoning) ->
        return @$failure if arguments.length is 0
        isCode = _.isNumber code
        isReasoning = _.isString reasoning
        noCode = "The code is not a number"
        noReasoning = "The reasoning is not a string"
        throw new Error noCode unless isCode
        throw new Error noReasoning unless isReasoning
        @emit "failure", arguments...
        (@$failure ?= []).push
            reasoning: reasoning

    # Synopsis is a brief story of what this service method does.
    synopsis: (synopsis) ->
        return @$synopsis if arguments.length is 0
        noSynopsis = "The synopsis is not a string"
        assert _.isString(synopsis), noSynopsis
        @emit "synopsis", arguments...
        @$synopsis = synopsis.toString()

