updates and tests.