pattern dao