more portable path handling