added update function, and new backend thread for slow functions.