Interface change (addManager -> registerManager, addSystem -> registerSystem)
Sorry about the interface change, but I think it's necessary to distinguish between adding (addComponent, where it is created by the system), and registration (registerSystem, registerManager, where it is created outside the system and passed in)