implemented merging, status notifications and external callback