this is a super class of singleton,you can subclass by it.