another attempt at platform independency