public function __construct($data = null)
{
$c = get_called_class();
if (!$c::MODULE_NAME) {
throw new \Exception('Constant MODULE_NAME is not defined on subclass ' . get_class($c));
}
if (!isset(static::$loaded)) {
throw new \Exception('Protected static variable $loaded is not defined on subclass ' . $c);
//static::$_loaded = false;
}
$this->specialData = $data;
}