Implemented all requirements. Pending test cases and test coverage