Changed abstract classes without method implementations or member variables to interfaces.
Replaced list of statements with CompositeFormElements, the FormElement itself when there is only one FormElement, and NullFormElement when there aren't any FormElements.