updated; merge