strategy base interface