version1.0 --basic function