adding platform independence