the library will creat a new instance for the first time the object is injected SINGLETON is also thead safe, so it guarantees that there is only one instance even in a threaded environment
the library will creat a new instance for the first time the object is injected REUSABLE is not thread safe and in sertan scenarios it can produce multiple instances