no need to call start()