first version. failing tests and no implementation