Added functionalities and tested use cases