implemented abs