Added strategy pattern.