new version

also need some impove.