initial changes and a few passing tests.