update. working version. no merge