move header files to folder include.

update makefile.

add visitor pattern.

add composite pattern files.

update composite pattern.