https://easeresin.com/pattern/director/