added inner class singleton