ver2

change some data type, still not yet done