make it work on unix, mac, and windows