more refactoring after unifying interfaces
now with a small wannabe composite pattern
more refactoring, now in the checking for alterations
refactoring: almost done with the composites
now with composites