Implement Singleton support
Add Interface support