added composite pattern demo