fix absolute and relative path handling