add dictionary data type… fix some bugs