refactored the abstract strategy classes into an Xtend based
implementation