added abs_n