D-TEC: Techniques for Building Domain Specific Languages (DSLs)