Fixed adapt, fleshed out Dataset::read()