add better path support