Minor renaming, cleaned up interfaces (introduced generics) for type-safety when using Providers.*