Added visitor and strategy implementations and the tests for them.