* Refactored the whole code
* cleaned code