some refactoring, more datasets