add some amount of threading, does updates