* ensure we prepare all sub-elements while preparing
* some name factoring:
  - add entered/leftView methods
  - change parseElement(s) to parseDeclaration(s)
  - force an element to ready itself by setting 'alwaysPrepare' to true