made KVO thread unsafe