playing with a DSL. it sucks.