/**
 * Class constructor
 *
 * @param   array  $options  An array of configuration options.
 *
 * @since   1.5
 */
public function __construct($options = array())
{
    // Extract the internal dependencies before calling the parent constructor since it calls $this->load()
    $this->app = isset($options['app']) && $options['app'] instanceof CMSApplication ? $options['app'] : Factory::getApplication();
    $this->db = isset($options['db']) && $options['db'] instanceof DatabaseDriver ? $options['db'] : Factory::getDbo();
    $this->language = isset($options['language']) && $options['language'] instanceof Language ? $options['language'] : Factory::getLanguage();
    parent::__construct($options);
}