module now portable across several os platforms