https://medium.com/@lmpandey/behind-the-scenes-how-do-lambda-expressions-really-work-in-java-d34a8c358031