make sure to call path.normalize