Now the code properly use the Strategy Pattern