diff --git a/kotlin/acronym/.gradle/3.5/file-changes/last-build.bin b/kotlin/acronym/.gradle/3.5/file-changes/last-build.bin
new file mode 100644
index 0000000..f76dd23
Binary files /dev/null and b/kotlin/acronym/.gradle/3.5/file-changes/last-build.bin differ
diff --git a/kotlin/acronym/.gradle/3.5/taskHistory/taskHistory.lock b/kotlin/acronym/.gradle/3.5/taskHistory/taskHistory.lock
new file mode 100644
index 0000000..b8a641a
Binary files /dev/null and b/kotlin/acronym/.gradle/3.5/taskHistory/taskHistory.lock differ
diff --git a/kotlin/acronym/.gradle/buildOutputCleanup/built.bin b/kotlin/acronym/.gradle/buildOutputCleanup/built.bin
new file mode 100644
index 0000000..e69de29
diff --git a/kotlin/acronym/.gradle/buildOutputCleanup/cache.properties b/kotlin/acronym/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..d7439b3
--- /dev/null
+++ b/kotlin/acronym/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Mon Jun 05 17:38:26 EDT 2017
+gradle.version=3.5
diff --git a/kotlin/acronym/.gradle/buildOutputCleanup/cache.properties.lock b/kotlin/acronym/.gradle/buildOutputCleanup/cache.properties.lock
new file mode 100644
index 0000000..40fdece
--- /dev/null
+++ b/kotlin/acronym/.gradle/buildOutputCleanup/cache.properties.lock
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/compiler.xml b/kotlin/acronym/.idea/compiler.xml
new file mode 100644
index 0000000..809782e
--- /dev/null
+++ b/kotlin/acronym/.idea/compiler.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/gradle.xml b/kotlin/acronym/.idea/gradle.xml
new file mode 100644
index 0000000..20d2df6
--- /dev/null
+++ b/kotlin/acronym/.idea/gradle.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/libraries/Gradle__junit_junit_4_12.xml b/kotlin/acronym/.idea/libraries/Gradle__junit_junit_4_12.xml
new file mode 100644
index 0000000..04c10dd
--- /dev/null
+++ b/kotlin/acronym/.idea/libraries/Gradle__junit_junit_4_12.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml b/kotlin/acronym/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml
new file mode 100644
index 0000000..8262f72
--- /dev/null
+++ b/kotlin/acronym/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml
new file mode 100644
index 0000000..4f32fde
--- /dev/null
+++ b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_1_1.xml b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_1_1.xml
new file mode 100644
index 0000000..7b6f562
--- /dev/null
+++ b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_1_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_test_1_1_1.xml b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_test_1_1_1.xml
new file mode 100644
index 0000000..1720158
--- /dev/null
+++ b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_test_1_1_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_test_junit_1_1_1.xml b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_test_junit_1_1_1.xml
new file mode 100644
index 0000000..21c5d19
--- /dev/null
+++ b/kotlin/acronym/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_test_junit_1_1_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/misc.xml b/kotlin/acronym/.idea/misc.xml
new file mode 100644
index 0000000..84da703
--- /dev/null
+++ b/kotlin/acronym/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/modules.xml b/kotlin/acronym/.idea/modules.xml
new file mode 100644
index 0000000..c8750a2
--- /dev/null
+++ b/kotlin/acronym/.idea/modules.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/modules/acronym_main.iml b/kotlin/acronym/.idea/modules/acronym_main.iml
new file mode 100644
index 0000000..fc7544c
--- /dev/null
+++ b/kotlin/acronym/.idea/modules/acronym_main.iml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/modules/acronym_test.iml b/kotlin/acronym/.idea/modules/acronym_test.iml
new file mode 100644
index 0000000..f51ca55
--- /dev/null
+++ b/kotlin/acronym/.idea/modules/acronym_test.iml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/.idea/workspace.xml b/kotlin/acronym/.idea/workspace.xml
new file mode 100644
index 0000000..690e077
--- /dev/null
+++ b/kotlin/acronym/.idea/workspace.xml
@@ -0,0 +1,983 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ignore
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1496698703791
+
+
+ 1496698703791
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/README.md b/kotlin/acronym/README.md
new file mode 100644
index 0000000..6e1c3e6
--- /dev/null
+++ b/kotlin/acronym/README.md
@@ -0,0 +1,16 @@
+# Acronym
+
+Convert a phrase to its acronym.
+
+Techies love their TLA (Three Letter Acronyms)!
+
+Help generate some jargon by writing a program that converts a long name
+like Portable Network Graphics to its acronym (PNG).
+
+## Source
+
+Julien Vanier [https://github.com/monkbroc](https://github.com/monkbroc)
+
+## Submitting Incomplete Solutions
+It's possible to submit an incomplete solution so you can see how others have completed the exercise.
+
diff --git a/kotlin/acronym/acronym.iml b/kotlin/acronym/acronym.iml
new file mode 100644
index 0000000..52e0a91
--- /dev/null
+++ b/kotlin/acronym/acronym.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kotlin/acronym/build.gradle b/kotlin/acronym/build.gradle
new file mode 100644
index 0000000..16c36c0
--- /dev/null
+++ b/kotlin/acronym/build.gradle
@@ -0,0 +1,28 @@
+buildscript {
+ ext.kotlin_version = '1.1.1'
+ repositories {
+ mavenCentral()
+ }
+ dependencies {
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+ }
+}
+
+apply plugin: 'kotlin'
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
+
+ testCompile 'junit:junit:4.12'
+ testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
+}
+test {
+ testLogging {
+ exceptionFormat = 'full'
+ events = ["passed", "failed", "skipped"]
+ }
+}
diff --git a/kotlin/acronym/build/classes/main/Acronym.class b/kotlin/acronym/build/classes/main/Acronym.class
new file mode 100644
index 0000000..1d434d5
Binary files /dev/null and b/kotlin/acronym/build/classes/main/Acronym.class differ
diff --git a/kotlin/acronym/build/classes/test/AcronymTest.class b/kotlin/acronym/build/classes/test/AcronymTest.class
new file mode 100644
index 0000000..8ff3e60
Binary files /dev/null and b/kotlin/acronym/build/classes/test/AcronymTest.class differ
diff --git a/kotlin/acronym/build/kotlin-build/caches/version.txt b/kotlin/acronym/build/kotlin-build/caches/version.txt
new file mode 100644
index 0000000..01aabac
--- /dev/null
+++ b/kotlin/acronym/build/kotlin-build/caches/version.txt
@@ -0,0 +1 @@
+11001
\ No newline at end of file
diff --git a/kotlin/acronym/src/main/kotlin/.keep b/kotlin/acronym/src/main/kotlin/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/kotlin/acronym/src/main/kotlin/Acronym.kt b/kotlin/acronym/src/main/kotlin/Acronym.kt
new file mode 100644
index 0000000..c6a1570
--- /dev/null
+++ b/kotlin/acronym/src/main/kotlin/Acronym.kt
@@ -0,0 +1,17 @@
+object Acronym {
+ fun generate(inpString: String): String{
+ val tokenized_sentence = inpString.split(delimiters = ' ').flatMap { it.split('-') }
+ val letters = tokenized_sentence.map { grabAcronym(it) }
+ return letters.joinToString(separator = "")
+ }
+
+ private fun grabAcronym(inpString: String): String{
+ if (inpString.first().isUpperCase()){
+ if (inpString.all { it.isUpperCase() || !it.isLetter() }){
+ return inpString.first().toString()
+ }
+ else return inpString.filter { it.isUpperCase() }
+ }
+ else return inpString.first().toUpperCase().toString()
+ }
+}
\ No newline at end of file
diff --git a/kotlin/acronym/src/test/kotlin/AcronymTest.kt b/kotlin/acronym/src/test/kotlin/AcronymTest.kt
new file mode 100644
index 0000000..1f1578c
--- /dev/null
+++ b/kotlin/acronym/src/test/kotlin/AcronymTest.kt
@@ -0,0 +1,55 @@
+import org.junit.Test
+import org.junit.Ignore
+import kotlin.test.assertEquals
+
+class AcronymTest {
+
+
+ @Test
+ fun fromTitleCasedPhrases() {
+ val phrase = "Portable Network Graphics"
+ val expected = "PNG"
+ assertEquals(expected, Acronym.generate(phrase))
+ }
+
+
+ @Test
+ fun fromOtherTitleCasedPhrases() {
+ val phrase = "Ruby on Rails"
+ val expected = "ROR"
+ assertEquals(expected, Acronym.generate(phrase))
+ }
+
+
+ @Test
+ fun fromInconsistentlyCasedPhrases() {
+ val phrase = "HyperText Markup Language"
+ val expected = "HTML"
+ assertEquals(expected, Acronym.generate(phrase))
+ }
+
+
+ @Test
+ fun fromPhrasesWithPunctuation() {
+ val phrase = "First In, First Out"
+ val expected = "FIFO"
+ assertEquals(expected, Acronym.generate(phrase))
+ }
+
+
+ @Test
+ fun fromOtherPhrasesWithPunctuation() {
+ val phrase = "PHP: Hypertext Preprocessor"
+ val expected = "PHP"
+ assertEquals(expected, Acronym.generate(phrase))
+ }
+
+
+ @Test
+ fun fromPhrasesWithPunctuationAndSentenceCasing() {
+ val phrase = "Complementary metal-oxide semiconductor"
+ val expected = "CMOS"
+ assertEquals(expected, Acronym.generate(phrase))
+ }
+
+}
diff --git a/kotlin/difference-of-squares/.idea/workspace.xml b/kotlin/difference-of-squares/.idea/workspace.xml
index 7aadafa..ddce48e 100644
--- a/kotlin/difference-of-squares/.idea/workspace.xml
+++ b/kotlin/difference-of-squares/.idea/workspace.xml
@@ -485,7 +485,7 @@
-
+
@@ -802,7 +802,7 @@
1496698361125
-
+
@@ -815,7 +815,7 @@
-
+
@@ -828,7 +828,7 @@
-
+