no reason to make namespace and events private. Moves api methods to prototype.
optionally broadcast events down the namespace tree