Edit function. Bugfixes. TODO: fix thread sync.