adding cake pattern, self-type examples
added canEqual example