platform independent path funcs added