host is optional, serve is optional