introduced strategy interface