1. allowed for variable length code generation. 2. defined mandatory fields