diff --git a/src/main/java/com/dre0059/articleprocessor/controller/FileUploadController.java b/src/main/java/com/dre0059/articleprocessor/controller/FileUploadController.java
index dc7f29ad973ecb2747faeaf25c80eb41562389b0..2b3dad959cd065826aad64bae262839f7a86ae1e 100644
--- a/src/main/java/com/dre0059/articleprocessor/controller/FileUploadController.java
+++ b/src/main/java/com/dre0059/articleprocessor/controller/FileUploadController.java
@@ -58,8 +58,8 @@ public class FileUploadController {
             headerService.processHeader(header);
             referenceService.extractReferences(references);
 
-            System.out.println(header);
-            //System.out.println(references);
+            //System.out.println(header);
+            System.out.println(references);
 
             tmpFile.delete();
 
diff --git a/src/main/java/com/dre0059/articleprocessor/model/Dokument.java b/src/main/java/com/dre0059/articleprocessor/model/Dokument.java
index 086720db019cfb118ba122e86a72c947f4d413e9..1032698a0ad0dc9d8e7300f90c8c6ca446afe6ed 100644
--- a/src/main/java/com/dre0059/articleprocessor/model/Dokument.java
+++ b/src/main/java/com/dre0059/articleprocessor/model/Dokument.java
@@ -28,8 +28,9 @@ public class Dokument {
     //@Column(name = "abstractText", columnDefinition = "TEXT")
     //private String abstractText;
 
-    private Integer pages;
+    private String status; // if the value is PDF - the whole document was uploaded, otherwise the document was just mentioned in references
     private String publisher;
+    private String target; // http link
 
     @OneToMany(mappedBy = "fromDocument", cascade = CascadeType.ALL)
     private List<Reference> references = new ArrayList<>();
@@ -46,13 +47,12 @@ public class Dokument {
 
     public Dokument() {}
 
-    public Dokument(String title, Integer year, String doi, /*String abstractText,*/ Integer pages, String publisher) {
+    public Dokument(String title, Integer year, String doi,String publisher, String status) {
         this.title = title;
         this.publicationYear = year;
         this.doi = doi;
-        //this.abstractText = abstractText;
-        this.pages = pages;
         this.publisher = publisher;
+        this.status = status;
     }
 
     public Long getId() { return id; }
@@ -60,7 +60,7 @@ public class Dokument {
     public Integer getYear() { return publicationYear; }
     public String getDoi() { return doi; }
     //public String getAbstractText() { return abstractText; }
-    public Integer getPages() { return pages; }
+    public String getStatus() { return status; }
     public String getPublisher() { return publisher; }
     public List<Reference> getReferences() { return references; }
     public List<Author> getAuthors() { return authors; }
@@ -68,6 +68,7 @@ public class Dokument {
 
     public void setAuthors(List<Author> authors) { this.authors = authors; }
     public void setTitle(String title) { this.title = title; }
+    public void setTarget(String target) { this.target = target; }
 
     public void setPublicationYear(Integer publicationYear) {
         this.publicationYear = publicationYear;
@@ -77,8 +78,8 @@ public class Dokument {
         this.doi = doi;
     }
 
-    public void setPages(Integer pages) {
-        this.pages = pages;
+    public void setStatus(String status) {
+        this.status = status;
     }
 
     public void setPublisher(String publisher) {
diff --git a/src/main/java/com/dre0059/articleprocessor/model/Reference.java b/src/main/java/com/dre0059/articleprocessor/model/Reference.java
index 6bb6af9288fdd0460b06f8adbe39b2db079e061c..e03045c4ef12ae83abab9daba170dce77c0facb8 100644
--- a/src/main/java/com/dre0059/articleprocessor/model/Reference.java
+++ b/src/main/java/com/dre0059/articleprocessor/model/Reference.java
@@ -21,8 +21,8 @@ public class Reference {
     private Dokument toDocument;
 
     public Reference() {}
-    public Reference(String orderNumber, Dokument fromDocument, Dokument toDocument) {
-        this.orderNumber = orderNumber;
+    public Reference(/*String orderNumber,*/ Dokument fromDocument, Dokument toDocument) {
+        //this.orderNumber = orderNumber;
         this.fromDocument = fromDocument;
         this.toDocument = toDocument;
     }
diff --git a/src/main/java/com/dre0059/articleprocessor/service/HeaderService.java b/src/main/java/com/dre0059/articleprocessor/service/HeaderService.java
index ff5a66a1101eff376ac77370002edd28bb350608..c4f8e5eaeec5654421ae19895e37b10f71b02d3e 100644
--- a/src/main/java/com/dre0059/articleprocessor/service/HeaderService.java
+++ b/src/main/java/com/dre0059/articleprocessor/service/HeaderService.java
@@ -84,7 +84,7 @@ public class HeaderService {
         }
 
         List<Author> savedAuthors = authorRepository.saveAll(authorList);
-        Dokument dokument = new Dokument(title, year, doi, pages, publisher);
+        Dokument dokument = new Dokument(title, year, doi, publisher, "PDF");
 
         dokument.setAuthors(savedAuthors);
         this.documentRepository.save(dokument);
diff --git a/src/main/java/com/dre0059/articleprocessor/service/ReferenceService.java b/src/main/java/com/dre0059/articleprocessor/service/ReferenceService.java
index fd03a2355a6557a2629fceb7eb010419007bf339..74cfea52ded85ecee72f5603e20ca6e33079b2d6 100644
--- a/src/main/java/com/dre0059/articleprocessor/service/ReferenceService.java
+++ b/src/main/java/com/dre0059/articleprocessor/service/ReferenceService.java
@@ -87,6 +87,9 @@ public class ReferenceService {
 
                 // Extract title - toDocument
                 String title = xpath.evaluate(".//tei:title[@level='m' or @level='a']", biblNode);
+                if(title.isBlank()){
+                    title = xpath.evaluate(".//tei:title[@level='j']", biblNode);
+                }
                 referencedDocument.setTitle(title);
 
                 // Extract year of publication
@@ -103,6 +106,10 @@ public class ReferenceService {
                 String publisher = xpath.evaluate(".//tei:publisher", biblNode);
                 referencedDocument.setPublisher(publisher);
 
+                // Extract publisher
+                String target = xpath.evaluate(".//tei:ptr/@target", biblNode);
+                referencedDocument.setTarget(target);
+
                 // Extract authors
                 NodeList authorNodes = (NodeList) xpath.evaluate(".//tei:author/tei:persName", biblNode, XPathConstants.NODESET);
                 List<Author> authors = new ArrayList<>();
@@ -128,7 +135,6 @@ public class ReferenceService {
                 referencedDocument.setAuthors(authors);
 
                 List<String> authorLastNames= authors.stream().map(Author::getLastname).toList();
-
                 // check if document exists in dbs
                 boolean exists = documentRepository.existsByTitleAndAuthorsIn(title, authorLastNames);
 
@@ -145,12 +151,19 @@ public class ReferenceService {
                     System.out.println("Document already exists in database : " + referencedDocument.getTitle() + " with ID : " + referencedDocument.getId());
                 } else {
                     // create new dokument
+                    referencedDocument.setStatus("Referenced");
                     this.setToDocument(referencedDocument);
                     this.documentRepository.save(toDocument);
                     this.authorRepository.saveAll(authors);
                 }
 
-                Reference reference = new Reference("[i]", fromDocument, toDocument);
+                Reference reference = new Reference(/*referenceID,*/ fromDocument, toDocument);
+
+                // extract ID from the document
+                String referenceID = xpath.evaluate("@*[local-name()='id']", biblNode);
+                System.out.println("referenceID: " + referenceID);
+                reference.setOrderNumber(referenceID);
+
                 referenceRepository.save(reference);
             }
         } catch (Exception e) {