design patterns study (head first)