algorithm manipulation