near final version/ no unit test.