- Add Tests
 - Update comments
 - Improve some code