have some unit tests, clearly nothing works yet, but some progress