add a new higher-level interface to go-vhost