completed ErrorCollection spec
freeze ErrorMessage. It should be immutable.
refactor Helper