- fix _renumber_units() bug
- refactor validate() method
- improve validation with semantic checking