calling done should be optional for the test writer