Complete solution for talk at Functional Conf using Java 7 or below