Rewrite donate code so it doesnt need restart