Now using the singleton design pattern to instantiate the layout
strategies. This is possible because the layout strategies have no
state.