refactored to work with relative path