code do process other dataset, still BUGS to fix