commit 14 implementation of the strategy pattern to handle different set of rules