clean up the transition considerably, add translate funcs for dataset