add longest
add reverse