public function bootstrap()
    {
        $this->hasBeenBootstrapped = true;
        
        $this['events']->dispatch('bootstrapping', [$this]);
        $this->boot();
        $this['events']->dispatch('bootstrapped', [$this]);
    }