Started implementing non-windows version.