added additional functionality and implemented pending use cases