refactoring providers to allow for more convenient entity creation.

Existing interfaces unchanged and marked as deprecated.