1. Very ugly, clean up the API before attempting to write tests or use in any way. 2. Write tests to ensure it works as expected and in a useful way. Can fields be accessed easily or are they blocked by the trait object? 3. Error types, error handling 4. Logging interface