More functionality and more tests.