Strategy pattern factorisation