NEW: implementation of Strategy design pattern