Solved by tom in post #2 
              
              
                Will it work without subclassing Dataset? Probably in most cases. 
Do you get anything from skipping subclassing Dataset? Probably not. 
Will it bite you when third party code tests isinstance(ds, Dataset) to see if it got a dataset or if someone use type hinting with your code? Yes. 
Best regards 
…