3rd (and stable) version of Strategy pattern