separate msi/installer functions