first draft passing minimal unit tests