improve install method