updated abc()