add Dataset.for method, resolves #5 but needs tests