add multiple os support