rewrote some sgements of mb_implement