Done with writing tests, now i must think of some refactorying and design change. Also there are some needs of renaming and etc.