final. merge all