1. Refactored.
2. Added Java Docs
3. Created Junits