https://easeresin.com/pattern/socrates/