Implemented Following functionalities