new approach to rev_add