Refactor types towards a strategy pattern.