must call done() to start up service