add os detection
add os detection