added better reverse