diff --git a/CLA-CORPORATE.md b/wsktools/CLA-CORPORATE.md
similarity index 100%
rename from CLA-CORPORATE.md
rename to wsktools/CLA-CORPORATE.md
diff --git a/CLA-INDIVIDUAL.md b/wsktools/CLA-INDIVIDUAL.md
similarity index 100%
rename from CLA-INDIVIDUAL.md
rename to wsktools/CLA-INDIVIDUAL.md
diff --git a/CONTRIBUTING.md b/wsktools/CONTRIBUTING.md
similarity index 100%
rename from CONTRIBUTING.md
rename to wsktools/CONTRIBUTING.md
diff --git a/LICENSE.txt b/wsktools/LICENSE.txt
similarity index 100%
rename from LICENSE.txt
rename to wsktools/LICENSE.txt
diff --git a/README.md b/wsktools/README.md
similarity index 100%
rename from README.md
rename to wsktools/README.md
diff --git a/WhiskSwiftTools-Bridging-Header.h b/wsktools/WhiskSwiftTools-Bridging-Header.h
similarity index 100%
rename from WhiskSwiftTools-Bridging-Header.h
rename to wsktools/WhiskSwiftTools-Bridging-Header.h
diff --git a/WhiskSwiftTools.xcodeproj/project.pbxproj b/wsktools/WhiskSwiftTools.xcodeproj/project.pbxproj
similarity index 100%
rename from WhiskSwiftTools.xcodeproj/project.pbxproj
rename to wsktools/WhiskSwiftTools.xcodeproj/project.pbxproj
diff --git a/WhiskSwiftTools.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/wsktools/WhiskSwiftTools.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from WhiskSwiftTools.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to wsktools/WhiskSwiftTools.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/WhiskSwiftTools.xcodeproj/project.xcworkspace/xcshareddata/WhiskSwiftTools.xcscmblueprint b/wsktools/WhiskSwiftTools.xcodeproj/project.xcworkspace/xcshareddata/WhiskSwiftTools.xcscmblueprint
similarity index 100%
rename from WhiskSwiftTools.xcodeproj/project.xcworkspace/xcshareddata/WhiskSwiftTools.xcscmblueprint
rename to wsktools/WhiskSwiftTools.xcodeproj/project.xcworkspace/xcshareddata/WhiskSwiftTools.xcscmblueprint
diff --git a/WhiskSwiftTools/ConsoleIO.swift b/wsktools/WhiskSwiftTools/ConsoleIO.swift
similarity index 100%
rename from WhiskSwiftTools/ConsoleIO.swift
rename to wsktools/WhiskSwiftTools/ConsoleIO.swift
diff --git a/WhiskSwiftTools/Git.swift b/wsktools/WhiskSwiftTools/Git.swift
similarity index 100%
rename from WhiskSwiftTools/Git.swift
rename to wsktools/WhiskSwiftTools/Git.swift
diff --git a/WhiskSwiftTools/ManifestReader.swift b/wsktools/WhiskSwiftTools/ManifestReader.swift
similarity index 100%
rename from WhiskSwiftTools/ManifestReader.swift
rename to wsktools/WhiskSwiftTools/ManifestReader.swift
diff --git a/WhiskSwiftTools/PBXProject.swift b/wsktools/WhiskSwiftTools/PBXProject.swift
similarity index 100%
rename from WhiskSwiftTools/PBXProject.swift
rename to wsktools/WhiskSwiftTools/PBXProject.swift
diff --git a/WhiskSwiftTools/ProjectManager.swift b/wsktools/WhiskSwiftTools/ProjectManager.swift
similarity index 100%
rename from WhiskSwiftTools/ProjectManager.swift
rename to wsktools/WhiskSwiftTools/ProjectManager.swift
diff --git a/WhiskSwiftTools/ProjectReader.swift b/wsktools/WhiskSwiftTools/ProjectReader.swift
similarity index 100%
rename from WhiskSwiftTools/ProjectReader.swift
rename to wsktools/WhiskSwiftTools/ProjectReader.swift
diff --git a/WhiskSwiftTools/SequenceCode.swift b/wsktools/WhiskSwiftTools/SequenceCode.swift
similarity index 100%
rename from WhiskSwiftTools/SequenceCode.swift
rename to wsktools/WhiskSwiftTools/SequenceCode.swift
diff --git a/WhiskSwiftTools/WhiskAPI.swift b/wsktools/WhiskSwiftTools/WhiskAPI.swift
similarity index 100%
rename from WhiskSwiftTools/WhiskAPI.swift
rename to wsktools/WhiskSwiftTools/WhiskAPI.swift
diff --git a/WhiskSwiftTools/WhiskInstaller.swift b/wsktools/WhiskSwiftTools/WhiskInstaller.swift
similarity index 100%
rename from WhiskSwiftTools/WhiskInstaller.swift
rename to wsktools/WhiskSwiftTools/WhiskInstaller.swift
diff --git a/WhiskSwiftTools/WhiskKit.swift b/wsktools/WhiskSwiftTools/WhiskKit.swift
similarity index 100%
rename from WhiskSwiftTools/WhiskKit.swift
rename to wsktools/WhiskSwiftTools/WhiskKit.swift
diff --git a/WhiskSwiftTools/WhiskTokenizer.swift b/wsktools/WhiskSwiftTools/WhiskTokenizer.swift
similarity index 100%
rename from WhiskSwiftTools/WhiskTokenizer.swift
rename to wsktools/WhiskSwiftTools/WhiskTokenizer.swift
diff --git a/WhiskSwiftTools/main.swift b/wsktools/WhiskSwiftTools/main.swift
similarity index 100%
rename from WhiskSwiftTools/main.swift
rename to wsktools/WhiskSwiftTools/main.swift
diff --git a/xcode-playgrounds-extension/OWPlaygrounds/EditFunctionCommand.swift b/xcode-playgrounds-extension/OWPlaygrounds/EditFunctionCommand.swift
new file mode 100644
index 0000000..3982056
--- /dev/null
+++ b/xcode-playgrounds-extension/OWPlaygrounds/EditFunctionCommand.swift
@@ -0,0 +1,319 @@
+    //
+    //  EditFunctionCommand.swift
+    //  ExtensionTest
+    //
+    //  Created by whisk on 1/13/17.
+    //  Copyright © 2017 whisk. All rights reserved.
+    //
+    
+    import Foundation
+    import XcodeKit
+    import AppKit
+    
+    class EditFunctionCommand: NSObject, XCSourceEditorCommand {
+        
+        func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: @escaping (Error?) -> Void) {
+            let selections = invocation.buffer.selections
+            
+            for item in selections {
+                if let rangeElement = item as? XCSourceTextRange{
+                    let lineStart = rangeElement.start.line
+                    let lineEnd = rangeElement.end.line
+                    var curlyCount = 0
+                    var curlyCountActive = false
+                    
+                    var startFunc = -1
+                    var endFunc = -1
+                    
+                    // Checking for function header
+                    for lineNum in lineStart...lineEnd{
+                        let line = invocation.buffer.lines[lineNum] as! String
+                        if line.contains("func"){
+                            curlyCountActive = true
+                            startFunc = lineNum
+                            break
+                        }
+                    }
+                    
+                    if startFunc == -1{
+                        displayAlert(message: "No function signature detected.  Please select a function header.")
+                        completionHandler(nil)
+                        return
+                    }
+                    
+                    //Looking for end of function
+                    var lineNum = startFunc
+                    while lineNum < invocation.buffer.lines.count {
+                        let line = invocation.buffer.lines[lineNum] as! String
+                        if line.contains("{"){
+                            curlyCount += 1
+                        }
+                        if line.contains("}"){
+                            curlyCount -= 1
+                        }
+                        if curlyCount == 0 {
+                            endFunc = lineNum
+                            break
+                        }
+                        lineNum += 1
+                    }
+                    
+                    if endFunc == -1{
+                        displayAlert(message: "Error finding function")
+                        completionHandler(nil)
+                        return
+                    }
+                    var fullFunc = ""
+                    
+                    let paramValues = checkUpdateParameters(startLine: startFunc, endLine: endFunc, lines: invocation.buffer.lines)
+                    if paramValues.count > 0{
+                        // get the param values
+                        do{
+                            print("Params - \(paramValues["params"])")
+                            let jsonParamData =  try JSONSerialization.data(withJSONObject: paramValues["params"]!, options: .prettyPrinted)
+                            let jsonParamString = NSString(data: jsonParamData, encoding: String.Encoding.ascii.rawValue) as! String
+                            fullFunc += jsonParamString
+                            
+                            let jsonOutputData =  try JSONSerialization.data(withJSONObject: paramValues["expectedOut"], options: .prettyPrinted)
+                            let jsonOutputString = NSString(data: jsonOutputData, encoding: String.Encoding.ascii.rawValue) as! String
+                            fullFunc += jsonOutputString
+                            
+                            //Check if OWPlayground is open already
+                            let owPlaygroundFound = self.checkForOWPlayground()
+                            //Open OWPlayground Background version if it is not open
+                            if owPlaygroundFound == false{
+                                self.openOWPlayground()
+                            }
+                            
+                            // Get path to files to monitor
+                            //Comes from Info.plist
+                            let dictionary = Bundle.main.infoDictionary
+                            let playgroundPath = dictionary!["PLAYGROUND_PATH"] as! String
+                            print("Playground Path - \(playgroundPath)")
+                            print("Expected Output - \(jsonOutputString)")
+                            
+                            //open URL for OWPlayground
+                            let urlString : String = "http://localhost:6018/?name=\(playgroundPath)&paramaters=\(jsonParamString)&results=\(jsonOutputString)".replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "\\", with: "").replacingOccurrences(of: "\n", with: "")
+                            let urlStringEncoded = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
+                            let url = URL(string: urlStringEncoded!)
+                            
+                            
+                            //Delays the opening of the url if the owPlayground isnt found
+                            
+                            let invokeGroup = DispatchGroup()
+                            invokeGroup.enter()
+                            //Fancy queues and functions to make the url open after the app is opened/server is running
+                            let queue = DispatchQueue(label: "OpenURLQueue", qos: DispatchQoS.userInitiated, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)
+                            queue.async{
+                                while true {
+                                    var found = false
+                                    DispatchQueue.main.sync {
+                                        let OWFound = self.checkForOWPlayground()
+                                        if OWFound {
+                                            found = true
+                                            let timeAfterOpen = 1.0
+                                            DispatchQueue.main.asyncAfter(
+                                                deadline: DispatchTime.now() + Double(Int64(timeAfterOpen * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC), execute: {
+                                                    print("opening url")
+                                                    NSWorkspace.shared().open(url!)
+                                                    invokeGroup.leave()
+                                            })
+                                        }
+                                    }
+                                    if found {
+                                        break
+                                    }
+                                }
+                            }
+                            
+                            switch invokeGroup.wait(timeout: DispatchTime.now() + 10) {
+                            case DispatchTimeoutResult.success:
+                                break
+                            case DispatchTimeoutResult.timedOut:
+                                print("Unable to open url as server has not launched")
+                                break
+                            }
+                        }catch{
+                            print("Didn't work")
+                        }
+                    }else{
+                        // wait for user to fill out param values
+                    }
+                    print(fullFunc)
+                    //displayAlert(message: fullFunc)
+                }
+            }
+            completionHandler(nil)
+        }
+        
+        
+        
+        /// Checks for parameters above the function and adds parameters with initial values if none are found
+        ///
+        /// - Parameters:
+        ///   - startLine: the beginning of the function : 21123r1231
+        ///   - endLine: the end of the function
+        ///   - lines: the lines of the file
+        /// - Returns: return true if documentation was created, false if documentation existed already
+        func checkUpdateParameters(startLine: Int, endLine: Int, lines: NSMutableArray)-> [String: Any]{
+            
+            // - Look for args that are used
+            var argsFound = [String]()
+            for lineNum in startLine...endLine{
+                if let line = lines[lineNum] as? String {
+                    if let startRange = line.range(of:"args[\""),
+                        let substringFrom = line.substring(from: startRange.upperBound) as? String,
+                        let endRange = substringFrom.range(of: "\"]"),
+                        let finalParamater = substringFrom.substring(to:endRange.lowerBound) as? String {
+                        if !argsFound.contains(finalParamater){
+                            argsFound.append(finalParamater)
+                        }
+                    }
+                }
+            }
+            
+            if argsFound.count > 0 {
+                argsFound.sort()
+                // Determine if placeholders were already created
+                var lineNum = startLine - 1
+                var startDocumentation = -1
+                var createDocumentation = true
+                while lineNum > 0{
+                    if let line = lines[lineNum] as? String{
+                        if !line.contains("///"){
+                            startDocumentation = lineNum + 1
+                            break
+                        }
+                        lineNum -= 1
+                    }
+                }
+                
+                if startDocumentation == -1 {
+                    startDocumentation = 0
+                }
+                var paramsFound = 0
+                var paramFoundLines = [String]()
+                for lineNum in startDocumentation..<startLine {
+                    if let line = lines[lineNum] as? String{
+                        argsFound.forEach{
+                            if line.contains("- \($0):"){
+                                paramsFound += 1
+                                paramFoundLines.append(line)
+                            }
+                        }
+                    }
+                }
+                if paramsFound == argsFound.count{
+                    createDocumentation = false
+                    var paramValues = [String:Any]()
+                    var paramsDict = [String:String]()
+                    paramValues["params"] = paramsDict
+                    for paramLine in paramFoundLines{
+                        
+                        let components = paramLine.components(separatedBy: ":")
+                        if components.count == 3{
+                            //Strip Param documentation lines for values
+                            var testValue = components[2]
+                            ["\n", " ", "#>", "<#", "\""].forEach{
+                                testValue = testValue.replacingOccurrences(of: $0, with: "")
+                            }
+                            var paramName = components[0]
+                            ["/", " ", "-"].forEach{
+                                paramName = paramName.replacingOccurrences(of: $0, with: "")
+                            }
+                            paramsDict[paramName] = testValue
+                            
+                        }else{
+                            createDocumentation = true
+                            break
+                        }
+                    }
+                    paramValues["params"] = paramsDict
+                    if createDocumentation == false{
+                        // Look for expected output
+                        for lineNum in startDocumentation ..< startLine {
+                            if let line = lines[lineNum] as? String{
+                                if line.contains("Expected Output --"){
+                                    var expectedOutString = line.components(separatedBy: "--").last!
+                                    ["\n", " ", "#>", "<#"].forEach({
+                                        expectedOutString = expectedOutString.replacingOccurrences(of: $0, with: "")
+                                    })
+                                    do{
+                                        let expectedOutJSON = try JSONSerialization.jsonObject(with: expectedOutString.data(using: String.Encoding.utf8)!, options: .mutableContainers)
+                                        paramValues["expectedOut"] = expectedOutJSON as! [String : Any]
+                                    }catch{
+                                        print("Expected output could not be parsed")
+                                        paramValues["expectedOut"] = [:]
+                                    }
+                                }
+                            }
+                        }
+                        return paramValues
+                    }
+                }
+                
+                // Create documentation placeholders if placeholders not found
+                if createDocumentation{
+                    var indentation = ""
+                    let funcLine = lines[startLine] as! String
+                    let funcLineComponents = funcLine.components(separatedBy: "func")
+                    if funcLineComponents.count > 1 {
+                        indentation = funcLineComponents[0]
+                    }
+                    
+                    var textToAdd = ""
+                    textToAdd += "\(indentation)/// <#Description#> \n"
+                    textToAdd += "\(indentation)/// \n"
+                    if argsFound.count > 0{
+                        textToAdd += "\(indentation)/// - Parameters: \n"
+                        argsFound.forEach { textToAdd += "\(indentation)///   - \($0): <# description #> : <# test value #> \n" }
+                    }
+                    textToAdd += "\(indentation)/// - Returns: <# return value description #> \n"
+                    textToAdd += "\(indentation)/// - Expected Output -- <#Put expected JSON here (optional)#> \n"
+                    lines.insert(textToAdd, at: startLine)
+                    return [:]
+                }
+                return [:]
+            }else{
+                return [:]
+            }
+        }
+        
+        func checkForOWPlayground()->Bool{
+            let runningApps = NSWorkspace.shared().runningApplications
+            var OWPlaygroundFound = false
+            for app in runningApps{
+                if app.bundleIdentifier == "com.electron.openwhisk-playground-osx"{
+                    OWPlaygroundFound = true
+                }
+            }
+            return OWPlaygroundFound
+        }
+        
+        func openOWPlayground(){
+            
+            let args = [ "-a",  "openwhisk-playground-osx", "--args", "asdfasdfddd"]
+            let task = Process()
+            task.launchPath = "/usr/bin/open"
+            task.arguments = args
+            
+            task.launch()
+        }
+        
+        /// Displays a pop up alert for debugging
+        ///
+        /// - Parameter message: message description
+        func displayAlert(message: String){
+            DispatchQueue.main.sync {
+                let alert = NSAlert()
+                alert.messageText = message
+                alert.window.level = 999
+                
+                NSApp.beginModalSession(for: alert.window)
+                NSApp.activate(ignoringOtherApps: true)
+                alert.window.makeKeyAndOrderFront(nil)
+                alert.runModal()
+                
+            }
+        }
+    }
diff --git a/xcode-playgrounds-extension/OWPlaygrounds/Info.plist b/xcode-playgrounds-extension/OWPlaygrounds/Info.plist
new file mode 100644
index 0000000..7e15be9
--- /dev/null
+++ b/xcode-playgrounds-extension/OWPlaygrounds/Info.plist
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>OWPlaygrounds</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>XPC!</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
+	<key>NSExtension</key>
+	<dict>
+		<key>NSExtensionAttributes</key>
+		<dict>
+			<key>XCSourceEditorExtensionPrincipalClass</key>
+			<string>$(PRODUCT_MODULE_NAME).SourceEditorExtension</string>
+		</dict>
+		<key>NSExtensionPointIdentifier</key>
+		<string>com.apple.dt.Xcode.extension.source-editor</string>
+	</dict>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright © 2017 Avery Lamp. All rights reserved.</string>
+	<key>PLAYGROUND_PATH</key>
+	<string>$(PROJECT_DIR)</string>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWPlaygrounds/OWPlaygrounds.entitlements b/xcode-playgrounds-extension/OWPlaygrounds/OWPlaygrounds.entitlements
new file mode 100644
index 0000000..852fa1a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWPlaygrounds/OWPlaygrounds.entitlements
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>com.apple.security.app-sandbox</key>
+	<true/>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWPlaygrounds/SourceEditorExtension.swift b/xcode-playgrounds-extension/OWPlaygrounds/SourceEditorExtension.swift
new file mode 100644
index 0000000..0969cf0
--- /dev/null
+++ b/xcode-playgrounds-extension/OWPlaygrounds/SourceEditorExtension.swift
@@ -0,0 +1,39 @@
+//
+//  SourceEditorExtension.swift
+//  OWPlaygrounds
+//
+//  Created by whisk on 1/30/17.
+//  Copyright © 2017 Avery Lamp. All rights reserved.
+//
+
+import Foundation
+import XcodeKit
+
+class SourceEditorExtension: NSObject, XCSourceEditorExtension {
+    
+    
+    func extensionDidFinishLaunching() {
+        print("Hello extension")
+        // If your extension needs to do any work at launch, implement this optional method.
+    }
+ 
+    
+    
+    var commandDefinitions: [[XCSourceEditorCommandDefinitionKey: Any]] {
+        // If your extension needs to return a collection of command definitions that differs from those in its Info.plist, implement this optional property getter.
+        let productIdentifier = Bundle.main.infoDictionary![kCFBundleIdentifierKey as String] as! String
+        
+        func definitionForClassNamed(_ className: String, commandName: String) -> [XCSourceEditorCommandDefinitionKey: Any] {
+            
+            return [XCSourceEditorCommandDefinitionKey.identifierKey: productIdentifier + className,
+                    XCSourceEditorCommandDefinitionKey.classNameKey: className,
+                    XCSourceEditorCommandDefinitionKey.nameKey: commandName]
+        }
+        
+        let myDefinitions : [[XCSourceEditorCommandDefinitionKey: Any]] = [definitionForClassNamed(EditFunctionCommand.className(),commandName: NSLocalizedString("Run function in OWPlayground", comment:""))]
+        
+        return myDefinitions
+    }
+ 
+    
+}
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftAppKit.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftAppKit.dylib
new file mode 100755
index 0000000..31447f2
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftAppKit.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCore.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCore.dylib
new file mode 100755
index 0000000..14deccf
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCore.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreData.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreData.dylib
new file mode 100755
index 0000000..22bfde4
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreData.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreGraphics.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreGraphics.dylib
new file mode 100755
index 0000000..f2ed077
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreGraphics.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreImage.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreImage.dylib
new file mode 100755
index 0000000..c99d852
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftCoreImage.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftDarwin.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftDarwin.dylib
new file mode 100755
index 0000000..fe7e2e6
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftDarwin.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftDispatch.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftDispatch.dylib
new file mode 100755
index 0000000..db14706
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftDispatch.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftFoundation.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftFoundation.dylib
new file mode 100755
index 0000000..c14d41d
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftFoundation.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftIOKit.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftIOKit.dylib
new file mode 100755
index 0000000..90b7f39
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftIOKit.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftObjectiveC.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftObjectiveC.dylib
new file mode 100755
index 0000000..a11f00b
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftObjectiveC.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftQuartzCore.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftQuartzCore.dylib
new file mode 100755
index 0000000..bd40f8e
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftQuartzCore.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftXPC.dylib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftXPC.dylib
new file mode 100755
index 0000000..c4aa2fe
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Frameworks/libswiftXPC.dylib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Info.plist b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Info.plist
new file mode 100644
index 0000000..0e000ca
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Info.plist
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildMachineOSBuild</key>
+	<string>16D32</string>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>OWXcodeExtension</string>
+	<key>CFBundleIconFile</key>
+	<string>AppIcon</string>
+	<key>CFBundleIdentifier</key>
+	<string>IBM.OWXcodeExtension</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>OWXcodeExtension</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSupportedPlatforms</key>
+	<array>
+		<string>MacOSX</string>
+	</array>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>DTCompiler</key>
+	<string>com.apple.compilers.llvm.clang.1_0</string>
+	<key>DTPlatformBuild</key>
+	<string>8C1002</string>
+	<key>DTPlatformVersion</key>
+	<string>GM</string>
+	<key>DTSDKBuild</key>
+	<string>16C58</string>
+	<key>DTSDKName</key>
+	<string>macosx10.12</string>
+	<key>DTXcode</key>
+	<string>0821</string>
+	<key>DTXcodeBuild</key>
+	<string>8C1002</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>10.12</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright © 2017 Avery Lamp. All rights reserved.</string>
+	<key>NSMainStoryboardFile</key>
+	<string>Main</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/MacOS/OWXcodeExtension b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/MacOS/OWXcodeExtension
new file mode 100755
index 0000000..baa4e33
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/MacOS/OWXcodeExtension
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PkgInfo b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PkgInfo
new file mode 100644
index 0000000..bd04210
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PkgInfo
@@ -0,0 +1 @@
+APPL????
\ No newline at end of file
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/Info.plist b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/Info.plist
new file mode 100644
index 0000000..b768a1a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/Info.plist
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildMachineOSBuild</key>
+	<string>16D32</string>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>OWPlaygrounds</string>
+	<key>CFBundleExecutable</key>
+	<string>OWPlaygrounds</string>
+	<key>CFBundleIdentifier</key>
+	<string>IBM.OWXcodeExtension.OWPlaygrounds</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>OWPlaygrounds</string>
+	<key>CFBundlePackageType</key>
+	<string>XPC!</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSupportedPlatforms</key>
+	<array>
+		<string>MacOSX</string>
+	</array>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>DTCompiler</key>
+	<string>com.apple.compilers.llvm.clang.1_0</string>
+	<key>DTPlatformBuild</key>
+	<string>8C1002</string>
+	<key>DTPlatformVersion</key>
+	<string>GM</string>
+	<key>DTSDKBuild</key>
+	<string>16C58</string>
+	<key>DTSDKName</key>
+	<string>macosx10.12</string>
+	<key>DTXcode</key>
+	<string>0821</string>
+	<key>DTXcodeBuild</key>
+	<string>8C1002</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>10.11</string>
+	<key>NSExtension</key>
+	<dict>
+		<key>NSExtensionAttributes</key>
+		<dict>
+			<key>XCSourceEditorExtensionPrincipalClass</key>
+			<string>OWPlaygrounds.SourceEditorExtension</string>
+		</dict>
+		<key>NSExtensionPointIdentifier</key>
+		<string>com.apple.dt.Xcode.extension.source-editor</string>
+	</dict>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright © 2017 Avery Lamp. All rights reserved.</string>
+	<key>PLAYGROUND_PATH</key>
+	<string>/Users/whisk/Developer/Xcode/OWXcode/openwhisk-xcode</string>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/MacOS/OWPlaygrounds b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/MacOS/OWPlaygrounds
new file mode 100755
index 0000000..1418419
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/MacOS/OWPlaygrounds
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/Resources/archived-expanded-entitlements.xcent b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/Resources/archived-expanded-entitlements.xcent
new file mode 100644
index 0000000..852fa1a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/Resources/archived-expanded-entitlements.xcent
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>com.apple.security.app-sandbox</key>
+	<true/>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/_CodeSignature/CodeResources b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/_CodeSignature/CodeResources
new file mode 100644
index 0000000..889d2c7
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/PlugIns/OWPlaygrounds.appex/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>files</key>
+	<dict>
+		<key>Resources/archived-expanded-entitlements.xcent</key>
+		<data>
+		EPWnZClCepLXTlRBQz8jOgCUyHo=
+		</data>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>Resources/archived-expanded-entitlements.xcent</key>
+		<dict>
+			<key>hash</key>
+			<data>
+			EPWnZClCepLXTlRBQz8jOgCUyHo=
+			</data>
+			<key>hash2</key>
+			<data>
+			t0bHSyAeavTghk+9H09in5YVan7EtyCLyZXQpQibtZI=
+			</data>
+		</dict>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^Resources/</key>
+		<true/>
+		<key>^Resources/.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^Resources/.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Resources/Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^Resources/</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^Resources/.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^Resources/.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Resources/Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^[^/]+$</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/AppIcon.icns b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/AppIcon.icns
new file mode 100644
index 0000000..e1098f1
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/AppIcon.icns
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Assets.car b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Assets.car
new file mode 100644
index 0000000..11d0d8a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Assets.car
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist
new file mode 100644
index 0000000..a549275
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib
new file mode 100644
index 0000000..7f58b0c
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib
new file mode 100644
index 0000000..8a7214a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib
new file mode 100644
index 0000000..56f4696
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/_CodeSignature/CodeResources b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/_CodeSignature/CodeResources
new file mode 100644
index 0000000..f6e7e5d
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.app/Contents/_CodeSignature/CodeResources
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>files</key>
+	<dict>
+		<key>Resources/AppIcon.icns</key>
+		<data>
+		dHxc/x2GLynMqg3kD7EDqfNDkKE=
+		</data>
+		<key>Resources/Assets.car</key>
+		<data>
+		OFiIu74sNQMT/DGtoCHL6Htxnoo=
+		</data>
+		<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
+		<data>
+		QAJFhikgqxe9+Moe5VgiCHs4Gek=
+		</data>
+		<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
+		<data>
+		Zr4/YcS0inbPkd3YnlHbNexGfMs=
+		</data>
+		<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
+		<data>
+		7tof6OtiTuiDLKizOFGI4e3VcYs=
+		</data>
+		<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
+		<data>
+		I9gfZH2qriQ4jDgLPth2W4PW8vs=
+		</data>
+	</dict>
+	<key>files2</key>
+	<dict>
+		<key>Frameworks/libswiftAppKit.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			ftrmbewJBFN53O8Vks98bPbezTs=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftAppKit" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftCore.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			u0XO+HIqw6d+mNdoy1wsLiRYuqI=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftCore" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftCoreData.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			OZAv3Pl9GJurrMhDPU7Y47NNuQQ=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftCoreData" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftCoreGraphics.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			9vrUeKLDrALVX1cR0C9uUtGEf9A=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftCoreGraphics" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftCoreImage.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			kxcDvwmYUHnevQwkgqFpG3LqS5Y=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftCoreImage" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftDarwin.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			0mSlBAeDo5TlBca+zJZff08u7iQ=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftDarwin" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftDispatch.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			bOjAZnbEUCUy+7kML7soj/2M20o=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftDispatch" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftFoundation.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			7WQNf+2m4tQB+9eJz6xgI8ewJfA=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftFoundation" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftIOKit.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			rUR+qFpRVp+7W1rLge5C2NNIMyc=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftIOKit" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftObjectiveC.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			Aj2HjQrkbNrs0/oWuD0zLesic/I=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftObjectiveC" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftQuartzCore.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			DgY0hrCMGQzfVk2sGgbjUSNjdiU=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftQuartzCore" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Frameworks/libswiftXPC.dylib</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			1WP/zDJyLZFJVf1r+KJSd5OCEp0=
+			</data>
+			<key>requirement</key>
+			<string>identifier "com.apple.dt.runtime.swiftXPC" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>PlugIns/OWPlaygrounds.appex</key>
+		<dict>
+			<key>cdhash</key>
+			<data>
+			K/jbjicSVLEjN6bGLZusPEMyir4=
+			</data>
+			<key>requirement</key>
+			<string>identifier "IBM.OWXcodeExtension.OWPlaygrounds" and anchor apple generic and certificate leaf[subject.CN] = "Mac Developer: Avery Lamp (UU9P8M6946)" and certificate 1[field.1.2.840.113635.100.6.2.1] /* exists */</string>
+		</dict>
+		<key>Resources/AppIcon.icns</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			yDbaW9GtKGNes/CcmFB8qQamvAYVOBnOUWPAg5/Qp8s=
+			</data>
+		</dict>
+		<key>Resources/Assets.car</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			b7yNLjGd0/FTlAExrwIJofhzetmaM+Kv2jb2tC9sw2E=
+			</data>
+		</dict>
+		<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			HzT/0rd37igBMY/5fa30xCABy2PnA+RUmfoDTsTBkCI=
+			</data>
+		</dict>
+		<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			q15i5tbZJqanCRFvgKZUbIK7Le+dvL7oKxSFhP/oJD4=
+			</data>
+		</dict>
+		<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			xbKIQ04M1Xl0xw2fnAYp4mVyTiIP/JnDuKuE2npnjnM=
+			</data>
+		</dict>
+		<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
+		<dict>
+			<key>hash2</key>
+			<data>
+			rG1o5x8R0SCa2vcx48+8QyYvxxhReT8CPfHzXfvmcCM=
+			</data>
+		</dict>
+	</dict>
+	<key>rules</key>
+	<dict>
+		<key>^Resources/</key>
+		<true/>
+		<key>^Resources/.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^Resources/.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Resources/Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^version.plist$</key>
+		<true/>
+	</dict>
+	<key>rules2</key>
+	<dict>
+		<key>.*\.dSYM($|/)</key>
+		<dict>
+			<key>weight</key>
+			<real>11</real>
+		</dict>
+		<key>^(.*/)?\.DS_Store$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>2000</real>
+		</dict>
+		<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^.*</key>
+		<true/>
+		<key>^Info\.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^PkgInfo$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^Resources/</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^Resources/.*\.lproj/</key>
+		<dict>
+			<key>optional</key>
+			<true/>
+			<key>weight</key>
+			<real>1000</real>
+		</dict>
+		<key>^Resources/.*\.lproj/locversion.plist$</key>
+		<dict>
+			<key>omit</key>
+			<true/>
+			<key>weight</key>
+			<real>1100</real>
+		</dict>
+		<key>^Resources/Base\.lproj/</key>
+		<dict>
+			<key>weight</key>
+			<real>1010</real>
+		</dict>
+		<key>^[^/]+$</key>
+		<dict>
+			<key>nested</key>
+			<true/>
+			<key>weight</key>
+			<real>10</real>
+		</dict>
+		<key>^embedded\.provisionprofile$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+		<key>^version\.plist$</key>
+		<dict>
+			<key>weight</key>
+			<real>20</real>
+		</dict>
+	</dict>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.xcodeproj/project.pbxproj b/xcode-playgrounds-extension/OWXcodeExtension.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..de62160
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.xcodeproj/project.pbxproj
@@ -0,0 +1,687 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		7F185A281E3F897C002C62EC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F185A271E3F897C002C62EC /* AppDelegate.swift */; };
+		7F185A2A1E3F897C002C62EC /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F185A291E3F897C002C62EC /* ViewController.swift */; };
+		7F185A2C1E3F897C002C62EC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7F185A2B1E3F897C002C62EC /* Assets.xcassets */; };
+		7F185A2F1E3F897C002C62EC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7F185A2D1E3F897C002C62EC /* Main.storyboard */; };
+		7F185A3A1E3F897C002C62EC /* OWXcodeExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F185A391E3F897C002C62EC /* OWXcodeExtensionTests.swift */; };
+		7F185A451E3F897C002C62EC /* OWXcodeExtensionUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F185A441E3F897C002C62EC /* OWXcodeExtensionUITests.swift */; };
+		7F185A591E3F8993002C62EC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F185A581E3F8993002C62EC /* Cocoa.framework */; };
+		7F185A5E1E3F8993002C62EC /* SourceEditorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F185A5D1E3F8993002C62EC /* SourceEditorExtension.swift */; };
+		7F185A641E3F8993002C62EC /* OWPlaygrounds.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 7F185A561E3F8993002C62EC /* OWPlaygrounds.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+		7F4F2D131E3F8C2100A503E9 /* EditFunctionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F4F2D121E3F8C2100A503E9 /* EditFunctionCommand.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		7F185A361E3F897C002C62EC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7F185A1C1E3F897B002C62EC /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7F185A231E3F897B002C62EC;
+			remoteInfo = OWXcodeExtension;
+		};
+		7F185A411E3F897C002C62EC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7F185A1C1E3F897B002C62EC /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7F185A231E3F897B002C62EC;
+			remoteInfo = OWXcodeExtension;
+		};
+		7F185A621E3F8993002C62EC /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 7F185A1C1E3F897B002C62EC /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = 7F185A551E3F8993002C62EC;
+			remoteInfo = OWPlaygrounds;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		7F185A681E3F8993002C62EC /* Embed App Extensions */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 13;
+			files = (
+				7F185A641E3F8993002C62EC /* OWPlaygrounds.appex in Embed App Extensions */,
+			);
+			name = "Embed App Extensions";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		7F185A241E3F897C002C62EC /* OWXcodeExtension.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OWXcodeExtension.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		7F185A271E3F897C002C62EC /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		7F185A291E3F897C002C62EC /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
+		7F185A2B1E3F897C002C62EC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		7F185A2E1E3F897C002C62EC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		7F185A301E3F897C002C62EC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		7F185A351E3F897C002C62EC /* OWXcodeExtensionTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OWXcodeExtensionTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		7F185A391E3F897C002C62EC /* OWXcodeExtensionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OWXcodeExtensionTests.swift; sourceTree = "<group>"; };
+		7F185A3B1E3F897C002C62EC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		7F185A401E3F897C002C62EC /* OWXcodeExtensionUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OWXcodeExtensionUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+		7F185A441E3F897C002C62EC /* OWXcodeExtensionUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OWXcodeExtensionUITests.swift; sourceTree = "<group>"; };
+		7F185A461E3F897C002C62EC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		7F185A561E3F8993002C62EC /* OWPlaygrounds.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = OWPlaygrounds.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+		7F185A581E3F8993002C62EC /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		7F185A5C1E3F8993002C62EC /* OWPlaygrounds.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OWPlaygrounds.entitlements; sourceTree = "<group>"; };
+		7F185A5D1E3F8993002C62EC /* SourceEditorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceEditorExtension.swift; sourceTree = "<group>"; };
+		7F185A611E3F8993002C62EC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		7F4F2D121E3F8C2100A503E9 /* EditFunctionCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditFunctionCommand.swift; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		7F185A211E3F897B002C62EC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A321E3F897C002C62EC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A3D1E3F897C002C62EC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A531E3F8993002C62EC /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7F185A591E3F8993002C62EC /* Cocoa.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		7F185A1B1E3F897B002C62EC = {
+			isa = PBXGroup;
+			children = (
+				7F185A261E3F897C002C62EC /* OWXcodeExtension */,
+				7F185A381E3F897C002C62EC /* OWXcodeExtensionTests */,
+				7F185A431E3F897C002C62EC /* OWXcodeExtensionUITests */,
+				7F185A5A1E3F8993002C62EC /* OWPlaygrounds */,
+				7F185A571E3F8993002C62EC /* Frameworks */,
+				7F185A251E3F897C002C62EC /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		7F185A251E3F897C002C62EC /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				7F185A241E3F897C002C62EC /* OWXcodeExtension.app */,
+				7F185A351E3F897C002C62EC /* OWXcodeExtensionTests.xctest */,
+				7F185A401E3F897C002C62EC /* OWXcodeExtensionUITests.xctest */,
+				7F185A561E3F8993002C62EC /* OWPlaygrounds.appex */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		7F185A261E3F897C002C62EC /* OWXcodeExtension */ = {
+			isa = PBXGroup;
+			children = (
+				7F185A271E3F897C002C62EC /* AppDelegate.swift */,
+				7F185A291E3F897C002C62EC /* ViewController.swift */,
+				7F185A2B1E3F897C002C62EC /* Assets.xcassets */,
+				7F185A2D1E3F897C002C62EC /* Main.storyboard */,
+				7F185A301E3F897C002C62EC /* Info.plist */,
+			);
+			path = OWXcodeExtension;
+			sourceTree = "<group>";
+		};
+		7F185A381E3F897C002C62EC /* OWXcodeExtensionTests */ = {
+			isa = PBXGroup;
+			children = (
+				7F185A391E3F897C002C62EC /* OWXcodeExtensionTests.swift */,
+				7F185A3B1E3F897C002C62EC /* Info.plist */,
+			);
+			path = OWXcodeExtensionTests;
+			sourceTree = "<group>";
+		};
+		7F185A431E3F897C002C62EC /* OWXcodeExtensionUITests */ = {
+			isa = PBXGroup;
+			children = (
+				7F185A441E3F897C002C62EC /* OWXcodeExtensionUITests.swift */,
+				7F185A461E3F897C002C62EC /* Info.plist */,
+			);
+			path = OWXcodeExtensionUITests;
+			sourceTree = "<group>";
+		};
+		7F185A571E3F8993002C62EC /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				7F185A581E3F8993002C62EC /* Cocoa.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		7F185A5A1E3F8993002C62EC /* OWPlaygrounds */ = {
+			isa = PBXGroup;
+			children = (
+				7F185A5D1E3F8993002C62EC /* SourceEditorExtension.swift */,
+				7F4F2D121E3F8C2100A503E9 /* EditFunctionCommand.swift */,
+				7F185A611E3F8993002C62EC /* Info.plist */,
+				7F185A5B1E3F8993002C62EC /* Supporting Files */,
+			);
+			path = OWPlaygrounds;
+			sourceTree = "<group>";
+		};
+		7F185A5B1E3F8993002C62EC /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				7F185A5C1E3F8993002C62EC /* OWPlaygrounds.entitlements */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		7F185A231E3F897B002C62EC /* OWXcodeExtension */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7F185A491E3F897C002C62EC /* Build configuration list for PBXNativeTarget "OWXcodeExtension" */;
+			buildPhases = (
+				7F185A201E3F897B002C62EC /* Sources */,
+				7F185A211E3F897B002C62EC /* Frameworks */,
+				7F185A221E3F897B002C62EC /* Resources */,
+				7F185A681E3F8993002C62EC /* Embed App Extensions */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				7F185A631E3F8993002C62EC /* PBXTargetDependency */,
+			);
+			name = OWXcodeExtension;
+			productName = OWXcodeExtension;
+			productReference = 7F185A241E3F897C002C62EC /* OWXcodeExtension.app */;
+			productType = "com.apple.product-type.application";
+		};
+		7F185A341E3F897C002C62EC /* OWXcodeExtensionTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7F185A4C1E3F897C002C62EC /* Build configuration list for PBXNativeTarget "OWXcodeExtensionTests" */;
+			buildPhases = (
+				7F185A311E3F897C002C62EC /* Sources */,
+				7F185A321E3F897C002C62EC /* Frameworks */,
+				7F185A331E3F897C002C62EC /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				7F185A371E3F897C002C62EC /* PBXTargetDependency */,
+			);
+			name = OWXcodeExtensionTests;
+			productName = OWXcodeExtensionTests;
+			productReference = 7F185A351E3F897C002C62EC /* OWXcodeExtensionTests.xctest */;
+			productType = "com.apple.product-type.bundle.unit-test";
+		};
+		7F185A3F1E3F897C002C62EC /* OWXcodeExtensionUITests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7F185A4F1E3F897C002C62EC /* Build configuration list for PBXNativeTarget "OWXcodeExtensionUITests" */;
+			buildPhases = (
+				7F185A3C1E3F897C002C62EC /* Sources */,
+				7F185A3D1E3F897C002C62EC /* Frameworks */,
+				7F185A3E1E3F897C002C62EC /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				7F185A421E3F897C002C62EC /* PBXTargetDependency */,
+			);
+			name = OWXcodeExtensionUITests;
+			productName = OWXcodeExtensionUITests;
+			productReference = 7F185A401E3F897C002C62EC /* OWXcodeExtensionUITests.xctest */;
+			productType = "com.apple.product-type.bundle.ui-testing";
+		};
+		7F185A551E3F8993002C62EC /* OWPlaygrounds */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 7F185A651E3F8993002C62EC /* Build configuration list for PBXNativeTarget "OWPlaygrounds" */;
+			buildPhases = (
+				7F185A521E3F8993002C62EC /* Sources */,
+				7F185A531E3F8993002C62EC /* Frameworks */,
+				7F185A541E3F8993002C62EC /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = OWPlaygrounds;
+			productName = OWPlaygrounds;
+			productReference = 7F185A561E3F8993002C62EC /* OWPlaygrounds.appex */;
+			productType = "com.apple.product-type.xcode-extension";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		7F185A1C1E3F897B002C62EC /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastSwiftUpdateCheck = 0820;
+				LastUpgradeCheck = 0820;
+				ORGANIZATIONNAME = "Avery Lamp";
+				TargetAttributes = {
+					7F185A231E3F897B002C62EC = {
+						CreatedOnToolsVersion = 8.2.1;
+						DevelopmentTeam = 9XWYL3K4YT;
+						ProvisioningStyle = Automatic;
+					};
+					7F185A341E3F897C002C62EC = {
+						CreatedOnToolsVersion = 8.2.1;
+						ProvisioningStyle = Automatic;
+						TestTargetID = 7F185A231E3F897B002C62EC;
+					};
+					7F185A3F1E3F897C002C62EC = {
+						CreatedOnToolsVersion = 8.2.1;
+						ProvisioningStyle = Automatic;
+						TestTargetID = 7F185A231E3F897B002C62EC;
+					};
+					7F185A551E3F8993002C62EC = {
+						CreatedOnToolsVersion = 8.2.1;
+						DevelopmentTeam = 9XWYL3K4YT;
+						ProvisioningStyle = Automatic;
+					};
+				};
+			};
+			buildConfigurationList = 7F185A1F1E3F897B002C62EC /* Build configuration list for PBXProject "OWXcodeExtension" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 7F185A1B1E3F897B002C62EC;
+			productRefGroup = 7F185A251E3F897C002C62EC /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				7F185A231E3F897B002C62EC /* OWXcodeExtension */,
+				7F185A341E3F897C002C62EC /* OWXcodeExtensionTests */,
+				7F185A3F1E3F897C002C62EC /* OWXcodeExtensionUITests */,
+				7F185A551E3F8993002C62EC /* OWPlaygrounds */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		7F185A221E3F897B002C62EC /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7F185A2C1E3F897C002C62EC /* Assets.xcassets in Resources */,
+				7F185A2F1E3F897C002C62EC /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A331E3F897C002C62EC /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A3E1E3F897C002C62EC /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A541E3F8993002C62EC /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		7F185A201E3F897B002C62EC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7F185A2A1E3F897C002C62EC /* ViewController.swift in Sources */,
+				7F185A281E3F897C002C62EC /* AppDelegate.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A311E3F897C002C62EC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7F185A3A1E3F897C002C62EC /* OWXcodeExtensionTests.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A3C1E3F897C002C62EC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7F185A451E3F897C002C62EC /* OWXcodeExtensionUITests.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		7F185A521E3F8993002C62EC /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7F185A5E1E3F8993002C62EC /* SourceEditorExtension.swift in Sources */,
+				7F4F2D131E3F8C2100A503E9 /* EditFunctionCommand.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		7F185A371E3F897C002C62EC /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7F185A231E3F897B002C62EC /* OWXcodeExtension */;
+			targetProxy = 7F185A361E3F897C002C62EC /* PBXContainerItemProxy */;
+		};
+		7F185A421E3F897C002C62EC /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7F185A231E3F897B002C62EC /* OWXcodeExtension */;
+			targetProxy = 7F185A411E3F897C002C62EC /* PBXContainerItemProxy */;
+		};
+		7F185A631E3F8993002C62EC /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = 7F185A551E3F8993002C62EC /* OWPlaygrounds */;
+			targetProxy = 7F185A621E3F8993002C62EC /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		7F185A2D1E3F897C002C62EC /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				7F185A2E1E3F897C002C62EC /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		7F185A471E3F897C002C62EC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				CODE_SIGN_IDENTITY = "-";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.12;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = macosx;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+			};
+			name = Debug;
+		};
+		7F185A481E3F897C002C62EC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				CODE_SIGN_IDENTITY = "-";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.12;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = macosx;
+				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+			};
+			name = Release;
+		};
+		7F185A4A1E3F897C002C62EC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "Mac Developer";
+				COMBINE_HIDPI_IMAGES = YES;
+				DEVELOPMENT_TEAM = 9XWYL3K4YT;
+				INFOPLIST_FILE = OWXcodeExtension/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtension;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 3.0;
+			};
+			name = Debug;
+		};
+		7F185A4B1E3F897C002C62EC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CODE_SIGN_IDENTITY = "Mac Developer";
+				COMBINE_HIDPI_IMAGES = YES;
+				DEVELOPMENT_TEAM = 9XWYL3K4YT;
+				INFOPLIST_FILE = OWXcodeExtension/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtension;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 3.0;
+			};
+			name = Release;
+		};
+		7F185A4D1E3F897C002C62EC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				COMBINE_HIDPI_IMAGES = YES;
+				INFOPLIST_FILE = OWXcodeExtensionTests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtensionTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 3.0;
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OWXcodeExtension.app/Contents/MacOS/OWXcodeExtension";
+			};
+			name = Debug;
+		};
+		7F185A4E1E3F897C002C62EC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+				BUNDLE_LOADER = "$(TEST_HOST)";
+				COMBINE_HIDPI_IMAGES = YES;
+				INFOPLIST_FILE = OWXcodeExtensionTests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtensionTests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 3.0;
+				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OWXcodeExtension.app/Contents/MacOS/OWXcodeExtension";
+			};
+			name = Release;
+		};
+		7F185A501E3F897C002C62EC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+				COMBINE_HIDPI_IMAGES = YES;
+				INFOPLIST_FILE = OWXcodeExtensionUITests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtensionUITests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 3.0;
+				TEST_TARGET_NAME = OWXcodeExtension;
+			};
+			name = Debug;
+		};
+		7F185A511E3F897C002C62EC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+				COMBINE_HIDPI_IMAGES = YES;
+				INFOPLIST_FILE = OWXcodeExtensionUITests/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtensionUITests;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_VERSION = 3.0;
+				TEST_TARGET_NAME = OWXcodeExtension;
+			};
+			name = Release;
+		};
+		7F185A661E3F8993002C62EC /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_ENTITLEMENTS = OWPlaygrounds/OWPlaygrounds.entitlements;
+				CODE_SIGN_IDENTITY = "Mac Developer";
+				COMBINE_HIDPI_IMAGES = YES;
+				DEVELOPMENT_TEAM = 9XWYL3K4YT;
+				INFOPLIST_FILE = OWPlaygrounds/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
+				MACOSX_DEPLOYMENT_TARGET = 10.11;
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtension.OWPlaygrounds;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SKIP_INSTALL = YES;
+				SWIFT_VERSION = 3.0;
+			};
+			name = Debug;
+		};
+		7F185A671E3F8993002C62EC /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CODE_SIGN_ENTITLEMENTS = OWPlaygrounds/OWPlaygrounds.entitlements;
+				CODE_SIGN_IDENTITY = "Mac Developer";
+				COMBINE_HIDPI_IMAGES = YES;
+				DEVELOPMENT_TEAM = 9XWYL3K4YT;
+				INFOPLIST_FILE = OWPlaygrounds/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks";
+				MACOSX_DEPLOYMENT_TARGET = 10.11;
+				PRODUCT_BUNDLE_IDENTIFIER = IBM.OWXcodeExtension.OWPlaygrounds;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SKIP_INSTALL = YES;
+				SWIFT_VERSION = 3.0;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		7F185A1F1E3F897B002C62EC /* Build configuration list for PBXProject "OWXcodeExtension" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7F185A471E3F897C002C62EC /* Debug */,
+				7F185A481E3F897C002C62EC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7F185A491E3F897C002C62EC /* Build configuration list for PBXNativeTarget "OWXcodeExtension" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7F185A4A1E3F897C002C62EC /* Debug */,
+				7F185A4B1E3F897C002C62EC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7F185A4C1E3F897C002C62EC /* Build configuration list for PBXNativeTarget "OWXcodeExtensionTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7F185A4D1E3F897C002C62EC /* Debug */,
+				7F185A4E1E3F897C002C62EC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7F185A4F1E3F897C002C62EC /* Build configuration list for PBXNativeTarget "OWXcodeExtensionUITests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7F185A501E3F897C002C62EC /* Debug */,
+				7F185A511E3F897C002C62EC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		7F185A651E3F8993002C62EC /* Build configuration list for PBXNativeTarget "OWPlaygrounds" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				7F185A661E3F8993002C62EC /* Debug */,
+				7F185A671E3F8993002C62EC /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 7F185A1C1E3F897B002C62EC /* Project object */;
+}
diff --git a/xcode-playgrounds-extension/OWXcodeExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/xcode-playgrounds-extension/OWXcodeExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..77653a7
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:OWXcodeExtension.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/AppDelegate.swift b/xcode-playgrounds-extension/OWXcodeExtension/AppDelegate.swift
new file mode 100644
index 0000000..11aa028
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/AppDelegate.swift
@@ -0,0 +1,26 @@
+//
+//  AppDelegate.swift
+//  OWXcodeExtension
+//
+//  Created by whisk on 1/30/17.
+//  Copyright © 2017 Avery Lamp. All rights reserved.
+//
+
+import Cocoa
+
+@NSApplicationMain
+class AppDelegate: NSObject, NSApplicationDelegate {
+
+
+
+    func applicationDidFinishLaunching(_ aNotification: Notification) {
+        // Insert code here to initialize your application
+    }
+
+    func applicationWillTerminate(_ aNotification: Notification) {
+        // Insert code here to tear down your application
+    }
+
+
+}
+
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/Contents.json b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..7170631
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,68 @@
+{
+  "images" : [
+    {
+      "size" : "16x16",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-9.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "16x16",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-8.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "32x32",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-7.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "32x32",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-6.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "128x128",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-5.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "128x128",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-4.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "256x256",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-3.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "256x256",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-2.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "512x512",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2-1.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "512x512",
+      "idiom" : "mac",
+      "filename" : "openwhisk_hero_large 2.png",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-1.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-1.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-1.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-2.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-2.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-2.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-3.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-3.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-3.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-4.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-4.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-4.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-5.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-5.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-5.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-6.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-6.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-6.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-7.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-7.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-7.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-8.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-8.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-8.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-9.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-9.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2-9.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2.png
new file mode 100644
index 0000000..b67425a
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/AppIcon.appiconset/openwhisk_hero_large 2.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/Contents.json b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..da4a164
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/openwhiskLogo.imageset/Contents.json b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/openwhiskLogo.imageset/Contents.json
new file mode 100644
index 0000000..bc0a2fb
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/openwhiskLogo.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "openwhisk_hero_medium.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/openwhiskLogo.imageset/openwhisk_hero_medium.png b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/openwhiskLogo.imageset/openwhisk_hero_medium.png
new file mode 100644
index 0000000..8d7c950
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Assets.xcassets/openwhiskLogo.imageset/openwhisk_hero_medium.png
Binary files differ
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Base.lproj/Main.storyboard b/xcode-playgrounds-extension/OWXcodeExtension/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..8bd42de
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Base.lproj/Main.storyboard
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16D32" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--Application-->
+        <scene sceneID="JPo-4y-FX3">
+            <objects>
+                <application id="hnw-xV-0zn" sceneMemberID="viewController">
+                    <menu key="mainMenu" title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
+                        <items>
+                            <menuItem title="OWXcodeExtension" id="1Xt-HY-uBw">
+                                <modifierMask key="keyEquivalentModifierMask"/>
+                                <menu key="submenu" title="OWXcodeExtension" systemMenu="apple" id="uQy-DD-JDr">
+                                    <items>
+                                        <menuItem title="About OWXcodeExtension" id="5kV-Vb-QxS">
+                                            <modifierMask key="keyEquivalentModifierMask"/>
+                                            <connections>
+                                                <action selector="orderFrontStandardAboutPanel:" target="Ady-hI-5gd" id="Exp-CZ-Vem"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
+                                        <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
+                                        <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
+                                        <menuItem title="Services" id="NMo-om-nkz">
+                                            <modifierMask key="keyEquivalentModifierMask"/>
+                                            <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
+                                        </menuItem>
+                                        <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
+                                        <menuItem title="Hide OWXcodeExtension" keyEquivalent="h" id="Olw-nP-bQN">
+                                            <connections>
+                                                <action selector="hide:" target="Ady-hI-5gd" id="PnN-Uc-m68"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
+                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
+                                            <connections>
+                                                <action selector="hideOtherApplications:" target="Ady-hI-5gd" id="VT4-aY-XCT"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem title="Show All" id="Kd2-mp-pUS">
+                                            <modifierMask key="keyEquivalentModifierMask"/>
+                                            <connections>
+                                                <action selector="unhideAllApplications:" target="Ady-hI-5gd" id="Dhg-Le-xox"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
+                                        <menuItem title="Quit OWXcodeExtension" keyEquivalent="q" id="4sb-4s-VLi">
+                                            <connections>
+                                                <action selector="terminate:" target="Ady-hI-5gd" id="Te7-pn-YzF"/>
+                                            </connections>
+                                        </menuItem>
+                                    </items>
+                                </menu>
+                            </menuItem>
+                        </items>
+                    </menu>
+                    <connections>
+                        <outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
+                    </connections>
+                </application>
+                <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="OWXcodeExtension" customModuleProvider="target"/>
+                <customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="75" y="0.0"/>
+        </scene>
+        <!--Window Controller-->
+        <scene sceneID="R2V-B0-nI4">
+            <objects>
+                <windowController id="B8D-0N-5wS" sceneMemberID="viewController">
+                    <window key="window" title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" animationBehavior="default" id="IQv-IB-iLA">
+                        <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
+                        <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+                        <rect key="contentRect" x="196" y="240" width="600" height="450"/>
+                        <rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
+                        <value key="minSize" type="size" width="600" height="450"/>
+                    </window>
+                    <connections>
+                        <segue destination="XfG-lQ-9wD" kind="relationship" relationship="window.shadowedContentViewController" id="cq2-FE-JQM"/>
+                    </connections>
+                </windowController>
+                <customObject id="Oky-zY-oP4" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="75" y="250"/>
+        </scene>
+        <!--View Controller-->
+        <scene sceneID="hIz-AP-VOD">
+            <objects>
+                <viewController id="XfG-lQ-9wD" customClass="ViewController" customModule="OWXcodeExtension" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" wantsLayer="YES" id="m2S-Jp-Qdl">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="450"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                        <subviews>
+                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tpt-yE-Kxs">
+                                <rect key="frame" x="2" y="380" width="596" height="50"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="50" id="tw1-mJ-1Zn"/>
+                                </constraints>
+                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="Welcome to the OpenWhisk Playgrounds Extension" id="TJZ-hQ-FiQ">
+                                    <font key="font" size="25" name="AvenirNext-Regular"/>
+                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                    <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                                </textFieldCell>
+                            </textField>
+                            <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="zjN-xL-Eye">
+                                <rect key="frame" x="100" y="170" width="400" height="200"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="400" id="KmU-NG-b2E"/>
+                                    <constraint firstAttribute="height" constant="200" id="sIU-BR-46N"/>
+                                </constraints>
+                                <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="openwhiskLogo" id="ZXU-an-qGj"/>
+                            </imageView>
+                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WJ0-jc-iHF">
+                                <rect key="frame" x="2" y="60" width="596" height="100"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="100" id="cRX-R6-pRc"/>
+                                </constraints>
+                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" id="yHG-78-w0l">
+                                    <font key="font" size="19" name="AvenirNext-Regular"/>
+                                    <string key="title">Your extension is now installed.   In order to uninstall the extension delete the app or
+go to System Preferences -&gt; Extensions and deactivate it.  
+   </string>
+                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                    <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                                </textFieldCell>
+                            </textField>
+                            <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uTJ-gO-vuq">
+                                <rect key="frame" x="96" y="19" width="408" height="31"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="dc4-Ye-BFc"/>
+                                </constraints>
+                                <buttonCell key="cell" type="roundRect" title="For instructions on how to use the extension click here" bezelStyle="roundedRect" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="icM-x2-46w">
+                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                    <font key="font" size="16" name="AvenirNext-Regular"/>
+                                </buttonCell>
+                                <connections>
+                                    <action selector="instructionsClicked:" target="XfG-lQ-9wD" id="VN0-Jo-Zgv"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="zjN-xL-Eye" firstAttribute="centerX" secondItem="m2S-Jp-Qdl" secondAttribute="centerX" id="1bu-mC-VxU"/>
+                            <constraint firstItem="uTJ-gO-vuq" firstAttribute="centerX" secondItem="m2S-Jp-Qdl" secondAttribute="centerX" id="4km-U3-jfx"/>
+                            <constraint firstItem="zjN-xL-Eye" firstAttribute="top" secondItem="Tpt-yE-Kxs" secondAttribute="bottom" constant="10" id="4lz-Xg-2vt"/>
+                            <constraint firstItem="Tpt-yE-Kxs" firstAttribute="centerX" secondItem="m2S-Jp-Qdl" secondAttribute="centerX" id="5VR-xY-wnb"/>
+                            <constraint firstItem="WJ0-jc-iHF" firstAttribute="width" secondItem="Tpt-yE-Kxs" secondAttribute="width" id="D8Y-dz-49I"/>
+                            <constraint firstItem="WJ0-jc-iHF" firstAttribute="centerX" secondItem="m2S-Jp-Qdl" secondAttribute="centerX" id="JU0-Jj-C3V"/>
+                            <constraint firstItem="Tpt-yE-Kxs" firstAttribute="top" secondItem="m2S-Jp-Qdl" secondAttribute="top" constant="20" id="S4l-qN-Exl"/>
+                            <constraint firstAttribute="bottom" secondItem="uTJ-gO-vuq" secondAttribute="bottom" constant="20" id="nMr-Bp-fX1"/>
+                            <constraint firstItem="WJ0-jc-iHF" firstAttribute="top" secondItem="zjN-xL-Eye" secondAttribute="bottom" constant="10" id="vfh-s0-o41"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <customObject id="rPt-NT-nkU" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="75" y="779"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="openwhiskLogo" width="300" height="192"/>
+    </resources>
+</document>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/Info.plist b/xcode-playgrounds-extension/OWXcodeExtension/Info.plist
new file mode 100644
index 0000000..4b8f3e8
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/Info.plist
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright © 2017 Avery Lamp. All rights reserved.</string>
+	<key>NSMainStoryboardFile</key>
+	<string>Main</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtension/ViewController.swift b/xcode-playgrounds-extension/OWXcodeExtension/ViewController.swift
new file mode 100644
index 0000000..6d44c35
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtension/ViewController.swift
@@ -0,0 +1,31 @@
+//
+//  ViewController.swift
+//  OWXcodeExtension
+//
+//  Created by whisk on 1/30/17.
+//  Copyright © 2017 Avery Lamp. All rights reserved.
+//
+
+import Cocoa
+
+class ViewController: NSViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        // Do any additional setup after loading the view.
+    }
+    @IBAction func instructionsClicked(_ sender: Any) {
+        let url = URL(string: "https://github.ibm.com/Avery-Lamp/openwhisk-xcode")
+        NSWorkspace.shared().open(url!)
+    }
+
+    override var representedObject: Any? {
+        didSet {
+        // Update the view, if already loaded.
+        }
+    }
+
+
+}
+
diff --git a/xcode-playgrounds-extension/OWXcodeExtensionTests/Info.plist b/xcode-playgrounds-extension/OWXcodeExtensionTests/Info.plist
new file mode 100644
index 0000000..6c6c23c
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtensionTests/Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtensionTests/OWXcodeExtensionTests.swift b/xcode-playgrounds-extension/OWXcodeExtensionTests/OWXcodeExtensionTests.swift
new file mode 100644
index 0000000..23ce593
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtensionTests/OWXcodeExtensionTests.swift
@@ -0,0 +1,36 @@
+//
+//  OWXcodeExtensionTests.swift
+//  OWXcodeExtensionTests
+//
+//  Created by whisk on 1/30/17.
+//  Copyright © 2017 Avery Lamp. All rights reserved.
+//
+
+import XCTest
+@testable import OWXcodeExtension
+
+class OWXcodeExtensionTests: XCTestCase {
+    
+    override func setUp() {
+        super.setUp()
+        // Put setup code here. This method is called before the invocation of each test method in the class.
+    }
+    
+    override func tearDown() {
+        // Put teardown code here. This method is called after the invocation of each test method in the class.
+        super.tearDown()
+    }
+    
+    func testExample() {
+        // This is an example of a functional test case.
+        // Use XCTAssert and related functions to verify your tests produce the correct results.
+    }
+    
+    func testPerformanceExample() {
+        // This is an example of a performance test case.
+        self.measure {
+            // Put the code you want to measure the time of here.
+        }
+    }
+    
+}
diff --git a/xcode-playgrounds-extension/OWXcodeExtensionUITests/Info.plist b/xcode-playgrounds-extension/OWXcodeExtensionUITests/Info.plist
new file mode 100644
index 0000000..6c6c23c
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtensionUITests/Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>
diff --git a/xcode-playgrounds-extension/OWXcodeExtensionUITests/OWXcodeExtensionUITests.swift b/xcode-playgrounds-extension/OWXcodeExtensionUITests/OWXcodeExtensionUITests.swift
new file mode 100644
index 0000000..ad9bbe0
--- /dev/null
+++ b/xcode-playgrounds-extension/OWXcodeExtensionUITests/OWXcodeExtensionUITests.swift
@@ -0,0 +1,36 @@
+//
+//  OWXcodeExtensionUITests.swift
+//  OWXcodeExtensionUITests
+//
+//  Created by whisk on 1/30/17.
+//  Copyright © 2017 Avery Lamp. All rights reserved.
+//
+
+import XCTest
+
+class OWXcodeExtensionUITests: XCTestCase {
+        
+    override func setUp() {
+        super.setUp()
+        
+        // Put setup code here. This method is called before the invocation of each test method in the class.
+        
+        // In UI tests it is usually best to stop immediately when a failure occurs.
+        continueAfterFailure = false
+        // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
+        XCUIApplication().launch()
+
+        // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
+    }
+    
+    override func tearDown() {
+        // Put teardown code here. This method is called after the invocation of each test method in the class.
+        super.tearDown()
+    }
+    
+    func testExample() {
+        // Use recording to get started writing UI tests.
+        // Use XCTAssert and related functions to verify your tests produce the correct results.
+    }
+    
+}
diff --git a/xcode-playgrounds-extension/README.md b/xcode-playgrounds-extension/README.md
new file mode 100644
index 0000000..4576720
--- /dev/null
+++ b/xcode-playgrounds-extension/README.md
@@ -0,0 +1,42 @@
+# OpenWhisk Xcode Extension
+> An Xcode Extension to run Swift OpenWhisk Functions in Playgrounds
+
+
+## Installation
+
+## Usage Example
+
+To invoke the extension, simply select the function header then run the extension.
+
+![Highlighting function](/Readme_Images/SelectFunction.png)
+
+The extension can be found in the Editor Menu, under OWPlaygrounds.  
+![Run Extension from Editor menu](/Readme_Images/RunExtension.png)
+
+The first time the extension is run, it will create documentation for the function to populate the test.  
+
+#### Parameters
+To input test values into the playground, the format `- paramName : description of parameter (optional) : param value for playground ` is used.  
+The parser looks only for `- paramName : : value`.  The description is not necessary, but the colons (:) seperating the paramName : Description : and test value are.  
+
+![Placeholders parameter example](/Readme_Images/DocumentationPlaceholders.png)
+
+If the extension does not find all of the  paramaters that are used in the function inside the documentation, it will recreate the documentation header.  
+
+#### Expected Output (Optional)
+
+The expected output part of the documentation is optional. The playground can be used as a unit tester if a value is provided inside the expected output.  To provide a value, type any valid json after the `--`.  If the json can be parsed, it will input it into the playground and check with the results recieved after running the function with the specified parameter values.
+
+`Note -`  The ` - Returns:` documentation line is not read by the extension and has no impact on the playgrounds.  It is created for personal documentation use.
+
+## Running the Playground
+
+The second time the extension is run, it check the function for all of the parameters used with `args["param"]`.  If it finds all of the parameters used in the function inside the documentation header, it will then attempt to open the OpenWhisk Playgrounds app, which spins up a server for testing functions.  
+
+When looking to open up the playground, the extension looks for an app called `openwhisk-playground-osx.app`.  If you do not have the playground app, you will need to install it (instructions in [Installation](https://github.ibm.com/Avery-Lamp/openwhisk-xcode#installation) above).  The playground app will run the server for testing functions in the background, while the extension will open up http://localhost:6018 with the correct parameters to test the function.
+
+## Tips and Tricks
+
+One way to easily improve the speed of invoking the extension is to create a shortcut for it.  To do this, open Xcode Preferences -> Key Bindings, then search for OWPlaygrounds.  You can create your own shortcut to invoke the action.
+
+
diff --git a/xcode-playgrounds-extension/Readme_Images/DocumentationPlaceholders.png b/xcode-playgrounds-extension/Readme_Images/DocumentationPlaceholders.png
new file mode 100644
index 0000000..82db062
--- /dev/null
+++ b/xcode-playgrounds-extension/Readme_Images/DocumentationPlaceholders.png
Binary files differ
diff --git a/xcode-playgrounds-extension/Readme_Images/RunExtension.png b/xcode-playgrounds-extension/Readme_Images/RunExtension.png
new file mode 100644
index 0000000..6f83988
--- /dev/null
+++ b/xcode-playgrounds-extension/Readme_Images/RunExtension.png
Binary files differ
diff --git a/xcode-playgrounds-extension/Readme_Images/SelectFunction.png b/xcode-playgrounds-extension/Readme_Images/SelectFunction.png
new file mode 100644
index 0000000..3c543cd
--- /dev/null
+++ b/xcode-playgrounds-extension/Readme_Images/SelectFunction.png
Binary files differ
