ngrease is a simple metalanguage for defining new concepts easily on any level. It can define analysis, requirements, design and implementation (in any programming language), and transformations to produce lower level concepts (working software) from higher level concepts.