added os specific code