added TypeSystem.update() and hooks