removed inner class and moved IRIProvider implementation