why do we need a _forward_dataset here at all?
it should be sufficient to just define ```_forward_data``` (you did, but adjust for comments in this one) and then default implementation of ```_forward_datset``` will use it to map .samples