strategy pattern exemple from heads firts