     }
 }
 
+/// Generate answers to default CSV format
 public class UsbongAnswersGeneratorDefaultCSVString: UsbongAnswersGenerator {
-    let states: [UsbongNodeState]
+    /// A collection of `UsbongNodeState`s that the output will be based upon
+    public let states: [UsbongNodeState]
     
+    /// Create an instance of `UsbongAnswersGeneratorDefaultCSVString`
     public required init(states: [UsbongNodeState]) {
         self.states = states
     }
     
+    /// Generate an output of type `String`
     public func generateOutput() -> String {
         var finalString = ""
         

        return finalString
    }
    
    public func generateOutputData() -> NSData? {
        let string = generateOutput()
        


import Foundation

/// Generate answers based on `UsbongNodeState`s
public protocol UsbongAnswersGenerator {
    associatedtype OutputType
    
    var states: [UsbongNodeState] { get }
    
    /// Create an instance of `UsbongAnswersGenerator` type
    init(states: [UsbongNodeState])
    
    /// Generate output of type `OutputType`
    @warn_unused_result
    func generateOutput() -> OutputType
    
    /// Generate output of type `NSData`
    @warn_unused_result
    func generateOutputData() -> NSData?
}
