cleaned up logic for function exposition
break out providerFunc
added provider suffix