notes on DSLs