diff --git a/array-rotation/README.md b/array-rotation/README.md
new file mode 100644
index 0000000..21befef
--- /dev/null
+++ b/array-rotation/README.md
@@ -0,0 +1,59 @@
+
Array Rotation Source
+
+[What It Is](#what-it-is)
+
+[How To Use](#how-to-use)
+
+## What It Is
+
+-Write a function rotate(ar[], d, n) that rotates `arr[]` of size `n` by `d` elements
+-1 2 3 4 5 6 7
+
+-Rotation of the above array by 2 will make array
+-3 4 5 6 7 1 2
+
+**METHOD 1 (Use temp array)**
+
+Input arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2, n =7
+1) Store `d` elements in a temp array
+ temp[] = [1, 2]
+2) Shift rest of the `arr[]`
+ arr[] = [3, 4, 5, 6, 7, 6, 7]
+3) Store back the `d` elements
+ arr[] = [3, 4, 5, 6, 7, 1, 2]
+
+Algorithm Complexity
+--------------------------
+
+| Complexity | Notation |
+| ----------------- |:---------:|
+| `Time Complexity` | `O(n)` |
+| `Auxiliary Space` | `O(d)` |
+
+
+**METHOD 2 (Rotate one by one)**
+
+```go
+leftRotate(arr[], d, n)
+start
+ For i = 0 to i < d
+ Left rotate all elements of arr[] by one
+end
+```
+
+To rotate by one, store arr[0] in a temporary variable temp, move arr[1] to arr[0], arr[2] to arr[1] …and finally temp to arr[n-1]
+Let us take the same example arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2
+Rotate arr[] by one 2 times
+We get `[2, 3, 4, 5, 6, 7, 1]` after first rotation and `[3, 4, 5, 6, 7, 1, 2]` after second rotation.
+
+Algorithm Complexity
+--------------------------
+
+| Complexity | Notation |
+| ----------------- |:---------:|
+| `Time Complexity` | `O(n*d)` |
+| `Auxiliary Space` | `O(1)` |
+
+
+## How To Use
+
diff --git a/array-rotation.go b/array-rotation/array-rotation.go
similarity index 51%
rename from array-rotation.go
rename to array-rotation/array-rotation.go
index 5f8adda..1876eee 100644
--- a/array-rotation.go
+++ b/array-rotation/array-rotation.go
@@ -5,46 +5,6 @@
// file LICENSE, which is part of this source code package, for details.
// ====================================================
-/*** INFO
-
--Write a function rotate(ar[], d, n) that rotates arr[] of size n by d elements
--1 2 3 4 5 6 7
-
--Rotation of the above array by 2 will make array
--3 4 5 6 7 1 2
-
--METHOD 1 (Use temp array) :
-
-Input arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2, n =7
-1) Store d elements in a temp array
- temp[] = [1, 2]
-2) Shift rest of the arr[]
- arr[] = [3, 4, 5, 6, 7, 6, 7]
-3) Store back the d elements
- arr[] = [3, 4, 5, 6, 7, 1, 2]
-
--Time complexity O(n)
--Auxiliary Space: O(d)
-
-
--METHOD 2 (Rotate one by one) :
-
-leftRotate(arr[], d, n)
-start
- For i = 0 to i < d
- Left rotate all elements of arr[] by one
-end
-
-To rotate by one, store arr[0] in a temporary variable temp, move arr[1] to arr[0], arr[2] to arr[1] …and finally temp to arr[n-1]
-Let us take the same example arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2
-Rotate arr[] by one 2 times
-We get [2, 3, 4, 5, 6, 7, 1] after first rotation and [ 3, 4, 5, 6, 7, 1, 2] after second rotation.
-
--Time complexity: O(n*d)
--Auxiliary Space: O(1)
-
-***/
-
package main
import "fmt"