More functionality added.
It seems to be working based on the limited test cases.