refactored installation