GOF Interpreter behavioral design pattern (from http://www.journaldev.com/dev/java/design-patterns)