strongly type singleton instance