diff --git a/manager.go b/manager.go
index 8e60b0c..6d728fe 100644
--- a/manager.go
+++ b/manager.go
@@ -2,6 +2,14 @@ package mlib

 import "errors"

+type MusicEntry struct {
+	Id     string
+	Name   string
+	Artist string
+	Source string
+	Type   string
+}
+
 type MusicManager struct {
 	musics []MusicEntry
 }
diff --git a/manager_test.go b/manager_test.go
index e69de29..d09ebd6 100644
--- a/manager_test.go
+++ b/manager_test.go
@@ -0,0 +1,41 @@
+package library
+
+import (
+	"testing"
+)
+
+func TestOps(t *testing.T) {
+	mm := NewNusicManager()
+	if mm == nil {
+		t.Error("NewNusicManager failed.")
+	}
+
+	if mm.Len() != 0 {
+		t.Error("NewMusicManager failed, not empty")
+	}
+
+	m0 := &MusicEntry{"1", "My Heart Will Go on", "Celion Dion", Pop, "http://qbox.me/24501234", MP3}
+	mm.Add(m0)
+
+	if mm.Len() != 1 {
+		t.Error("MusicManager.Add() failed.")
+	}
+
+	m := mm.Find(m0.Name)
+	if m == nil {
+		t.Error("MusicManager.Find() failed.")
+	}
+	if m.Id != m0.Id || m.Name != m0.Name || m.Artist != m0.Artist || m.Source != m0.Source || m.Type != m0.Type {
+		t.Error("MusicManager.Find() failed. Found item mismatch.")
+	}
+
+	m, err := mm.Get(0)
+	if m == nil {
+		t.Error("MusicManager.Get() failed.", err)
+	}
+
+	m = mm.Remove(0)
+	if m == nil || mm.Len() != 0 {
+		t.Error("MusicManager.Remove() failed.", err)
+	}
+}
Modify the directory tree structure