Refactor
Refactor tests
Add description to header comments
Add README.md