A lot of the functionality for subsetting, reshaping and such has been a bit 'bolted on' at this point. The code could use a cleanup.