update provision
some refactoring
update readme