add composite pattern. Also a few files previously missed.