Out of 5 friends Alex, Barry, Charles, David, and Eshaan, David is not the tallest. Eshaan is taller than only two of his friends. Alex is shorter than only one of his friends. Barry is the shortest. If all of them have different heights, then who is the tallest?