Uploading some of design patterns learned