Desirable Properties
Result looks like the input
Efficient
General
Easy to use
Extensible