refactor dataset object