Dataset data structures

Should have a map method and a functor instance.