Now fully platform independent (hopefully)