distinguish between graceful and ungraceful closes
provide pipe() for proxying
remove prefixes from public function names