implement strategies aligned with algorithms