refactored Detect.OS, not done with this module yet