completely rewrite installer