add relative path support