       case (Repo.insert(changeset) |> insert_annotations(changeset)) do
         {:error, changeset} ->
           Repo.rollback(changeset)
-        {:ok, fact} ->
+        {:ok, fact, annotations} ->
           fact
       end
     end)

  def create(conn, fact_params) do
    changeset = Fact.changeset(%Fact{}, fact_params)

    case Repo.insert(changeset) do
      {:ok, fact} ->
        fact = fact
        |> Repo.preload(:question)
        |> Repo.preload(:annotations)

        conn
        |> put_status(:created)

      case (Repo.update(changeset) |> remove_annotations(changeset) |> insert_annotations(changeset)) do
        {:error, changeset} ->
          Repo.rollback(changeset)
        {:ok, fact, annotations} ->
          fact
      end
    end)
