initial commit
added decorator pattern and singleton pattern