Adding more useful method + adding const for methods
Adding NotificationQueue

This is only simple implementation.
Now when removing component we also pass it ID
More assers added for finding invalid uses.

Removed hash we don't need it