added os detection