Updating tests.
Further starting progress and refactoring into different strategies.