public function create($base = null, $className = null)
    {
        if ($base === null) {
            if (have_posts()) {
                the_post();
                $base = get_post();
            } else {
                throw new Exception('Please supply a post object when not within The Loop');
            }
        }

        $cls = 'Tev\Post\Model\Post';

        if (($className !== null) && is_subclass_of($className, 'Tev\Post\Model\AbstractPost')) {
            $cls = $className;
        } elseif ($className = $this->registered($base->post_type)) {
            $cls = $className;
        }

        return new $cls($base, $this->authorFactory, $this->taxonomyFactory, $this->fieldFactory, $this);
    }