improve os handling