I would have your module rely on a separate data provider object to return the data. That way you can encapsulate all of the policies about how the data is stored, versioned, updated, etc. in a user selectable class. Of course, you can define convenience methods which use some default data provider, but you gain the most flexibility by handing off that responsibility to another object and it also is a nature separation of concerns.