use Opaque instead of Path