This is a facade interface that ties together a bunch of different internal objects and will make it easier to write tests for behaviors, modes, and operations.