Mohamed Sanaulla: Creating Internal DSLs in Java, Java 8- Adopting Martin Fowler’s approach