added startup() and shutdown()