use different type to remove the warnings on other system