eliminate compile error
atuo memory management of new and delete
add Makefile for observer pattern
separate common part of the Makefile