Design pattern study with head first