Singleton shouldn't allow other instance and clone

Constructor and clone methods should be private, `getInstance` is the only responsible for class instance.