use standard function to test if dataset
add equals function for datasets; clean-up
migrate core to dataset protocols