director patterns