add install button and do some refactoring