threading to keep alive, maybe idk.