Design patterns lecture 1