Also recreate a matcher after changing the structure

Change-Id: Ia8165ba50cc3aadbf27bec691bd856d9d3cfbccb
Reuse cached data in isAccetible() too

Change-Id: Ie84b455ec62d63b7808a5a21fc795b8d6d080ea0
Use a Map instead of a list in the atom type factory

Change-Id: I0451f05d935dbee3c2a8208091883486e304f79c