adding OS detection