Strategy pattern

Select a strategy at runtime