only install if needed