public function __construct($class_name)
{
$this->class = Reflections::instance()->add($class_name)->get($class_name);
$this->reestablish_connection(false);
$this->set_table_name();
$this->get_meta_data();
$this->set_primary_key();
$this->set_sequence_name();
$this->set_delegates();
$this->set_cache();
$this->set_setters_and_getters();
$this->callback = new CallBack($class_name);
$this->callback->register('before_save', function (Model $model) {
$model->set_timestamps();
}, array('prepend' => true));
$this->callback->register('after_save', function (Model $model) {
$model->reset_dirty();
}, array('prepend' => true));
}