1. ThreadSafe with double check Singleton
2. BillPughSingleton with private static inner class
3. Use reflection to destroy
4. Use serialized to destroy(readResolver())