Implements a first try with Strategies, it's bad