added #defines to determine OS, may move later