add some updates,make it more easy to use and more functional