programme functionality merge