Introduced an abstraction for resource generators