create an interesting expression dsl, also tried regex
make planFormat a pure function which return's string instead of println directly
refactor my mini dsl
minor refactor
add a simple cake pattern sample
use type wrapper to enforce correctness