Adding singleton pattern and defining sinle entry root point