add type respect Dataset subclasses