     private let gitHubURL: String
     private let year: String
     private let organizationName: String
-
+    
     init(projectName: String, authorName: String, authorEmail: String?, gitHubURL: String?, organizationName: String?) {
         self.projectName = projectName
         self.authorName = authorName

    
    func process(string: String) -> String {
        return string.replacingOccurrences(of: "{PROJECT}", with: projectName)
                     .replacingOccurrences(of: "{AUTHOR}", with: authorName)
                     .replacingOccurrences(of: "{EMAIL}", with: authorEmail)
                     .replacingOccurrences(of: "{URL}", with: gitHubURL)
                     .replacingOccurrences(of: "{YEAR}", with: year)
                     .replacingOccurrences(of: "{ORGANIZATION}", with: organizationName)
    }
    
    func process(filesInFolderWithPath folderPath: String) throws {

}

extension Array {
    func element(after index: Int) -> Element? {
        
        //: handles not only negative indices, but also index == self.count
        //: might be over-engineered, we only need to check for second condition
        let arrRange = [Int](0..<self.count)
        if arrRange.contains(index + 1) {
            return self[index + 1]
        } else {
            return nil
        }
    }
}

// MARK: - Types
