first prototype for typeproviders