Abstract out the OS