added singleton pattern demo