diff --git a/source/de/anomic/crawler/CrawlProfile.java b/source/de/anomic/crawler/CrawlProfile.java
index 8e5a7d458..942a573ac 100644
--- a/source/de/anomic/crawler/CrawlProfile.java
+++ b/source/de/anomic/crawler/CrawlProfile.java
@@ -55,6 +55,7 @@ public class CrawlProfile {
     private final File profileTableFile;
     
     public CrawlProfile(final File file) throws IOException {
+        //System.out.println("loading crawl profile from " + file);
         this.profileTableFile = file;
         profileTableFile.getParentFile().mkdirs();
         final Heap dyn = new Heap(profileTableFile, Word.commonHashLength, NaturalOrder.naturalOrder, 1024 * 64);
@@ -63,6 +64,7 @@ public class CrawlProfile {
         entry e;
         while (pi.hasNext()) {
         	e = pi.next();
+        	if (e == null) continue;
         	Log.logInfo("CrawlProfiles", "loaded Profile " + e.handle() + ": " + e.name());
         }
     }
diff --git a/source/de/anomic/search/Switchboard.java b/source/de/anomic/search/Switchboard.java
index ef9f2b683..8bd5b9427 100644
--- a/source/de/anomic/search/Switchboard.java
+++ b/source/de/anomic/search/Switchboard.java
@@ -1696,6 +1696,14 @@ public final class Switchboard extends serverSwitch {
         }
     }
     
+    public indexingQueueEntry webStructureAnalysis(final indexingQueueEntry in) {
+        in.queueEntry.updateStatus(Response.QUEUE_STATE_STRUCTUREANALYSIS);
+        final Integer[] ioLinks = webStructure.generateCitationReference(in.document, in.condenser, in.queueEntry.lastModified()); // [outlinksSame, outlinksOther]
+        in.document.setInboundLinks(ioLinks[0].intValue());
+        in.document.setOutboundLinks(ioLinks[1].intValue());
+        return in;
+    }
+    
     public void storeDocumentIndex(final indexingQueueEntry in) {
         in.queueEntry.updateStatus(Response.QUEUE_STATE_INDEXSTORAGE);
         storeDocumentIndex(in.process, in.queueEntry, in.document, in.condenser);
diff --git a/source/dbtest.java b/source/net/yacy/dbtest.java
similarity index 97%
rename from source/dbtest.java
rename to source/net/yacy/dbtest.java
index 8d04ee1b0..e9e5450ca 100644
--- a/source/dbtest.java
+++ b/source/net/yacy/dbtest.java
@@ -1,3 +1,4 @@
+package net.yacy;
 // test application
 // shall be used to compare the kelondroDB with other databases
 // with relevance to yacy-specific use cases
diff --git a/source/net/yacy/document/Document.java b/source/net/yacy/document/Document.java
index 6901031c5..93efa7f86 100644
--- a/source/net/yacy/document/Document.java
+++ b/source/net/yacy/document/Document.java
@@ -133,7 +133,15 @@ public class Document {
             final CachedFileOutputStream text, final Map<DigestURI, String> anchors, final HashMap<String, ImageEntry> images) {
         this(location, mimeType, charset, languages, keywords, title, author, sections, abstrct, (Object)text, anchors, images);
     }
-
+    
+    public void setInboundLinks(int il) {
+        this.inboundLinks = il;
+    }
+    
+    public void setOutboundLinks(int ol) {
+        this.outboundLinks = ol;
+    }
+    
     /**
      * compute a set of languages that this document contains
      * the language is not computed using a statistical analysis of the content, only from given metadata that came with the document
diff --git a/source/genpw.java b/source/net/yacy/genpw.java
similarity index 99%
rename from source/genpw.java
rename to source/net/yacy/genpw.java
index ce9084800..d2824f94c 100644
--- a/source/genpw.java
+++ b/source/net/yacy/genpw.java
@@ -1,3 +1,4 @@
+package net.yacy;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
diff --git a/source/migration.java b/source/net/yacy/migration.java
similarity index 99%
rename from source/migration.java
rename to source/net/yacy/migration.java
index 71743f6d2..ea98a6538 100644
--- a/source/migration.java
+++ b/source/net/yacy/migration.java
@@ -1,3 +1,4 @@
+package net.yacy;
 // migration.java
 // -----------------------
 // (C) by Alexander Schier
diff --git a/source/screenshot.java b/source/net/yacy/screenshot.java
similarity index 98%
rename from source/screenshot.java
rename to source/net/yacy/screenshot.java
index 2077df5ba..4f335faad 100755
--- a/source/screenshot.java
+++ b/source/net/yacy/screenshot.java
@@ -1,3 +1,4 @@
+package net.yacy;
 
 import java.awt.Dimension;
 import java.awt.Rectangle;
diff --git a/source/yacy.java b/source/net/yacy/yacy.java
similarity index 97%
rename from source/yacy.java
rename to source/net/yacy/yacy.java
index d1b2326c0..fe9f69f50 100644
--- a/source/yacy.java
+++ b/source/net/yacy/yacy.java
@@ -1,3 +1,4 @@
+package net.yacy;
 // yacy.java
 // -----------------------
 // (C) by Michael Peter Christen; mc@yacy.net
@@ -22,6 +23,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.BufferedReader;
diff --git a/startYACY.bat b/startYACY.bat
index bebad0c8e..b5eff28c6 100644
--- a/startYACY.bat
+++ b/startYACY.bat
@@ -33,7 +33,7 @@ Echo.
 Echo You can download Java at http://java.com/
 Echo.
 Echo ***************************************************************************
-start %priority% javaw %javacmd% -classpath %CLASSPATH% yacy
+start %priority% javaw %javacmd% -classpath %CLASSPATH% net.yacy.yacy
 Echo You can close the console safely now.
 
 GoTo :END
diff --git a/startYACY.sh b/startYACY.sh
index 09b427885..292d69be0 100755
--- a/startYACY.sh
+++ b/startYACY.sh
@@ -171,7 +171,7 @@ CLASSPATH=""
 for N in lib/*.jar; do CLASSPATH="$CLASSPATH$N:"; done
 CLASSPATH=".:htroot:$CLASSPATH"
 
-cmdline="$JAVA $JAVA_ARGS -Djava.awt.headless=true -classpath $CLASSPATH yacy";
+cmdline="$JAVA $JAVA_ARGS -Djava.awt.headless=true -classpath $CLASSPATH net.yacy.yacy";
 if [ $DEBUG -eq 1 ] #debug
 then
 	cmdline=$cmdline
diff --git a/startYACY_Win9x.bat b/startYACY_Win9x.bat
index 5e9ad6bde..cad1a83cc 100644
--- a/startYACY_Win9x.bat
+++ b/startYACY_Win9x.bat
@@ -9,7 +9,7 @@ For %%X in (libx\*.jar) Do Call %0 CPGEN %%X
 
 Rem Starting yacy
 Echo Generated Classpath:%CLASSPATH%
-java -classpath %CLASSPATH% yacy
+java -classpath %CLASSPATH% net.yacy.yacy
 
 GoTo :END
 
diff --git a/startYACY_debug.bat b/startYACY_debug.bat
index ba8b50954..10837233a 100644
--- a/startYACY_debug.bat
+++ b/startYACY_debug.bat
@@ -38,7 +38,7 @@ Echo  ^>^> YaCy started as daemon process. Administration at http://localhost:%p
 
 title YaCy - http://localhost:%port%
 
-start "YaCy" %priority% /B /WAIT java %javacmd% -classpath %CLASSPATH% yacy
+start "YaCy" %priority% /B /WAIT java %javacmd% -classpath %CLASSPATH% net.yacy.yacy
 
 if not exist DATA\yacy.restart GoTo :END
 del DATA\yacy.restart
diff --git a/startYACY_noconsole_Win9x.bat b/startYACY_noconsole_Win9x.bat
index 8b1151189..e4d67e811 100644
--- a/startYACY_noconsole_Win9x.bat
+++ b/startYACY_noconsole_Win9x.bat
@@ -8,7 +8,7 @@ For %%X in (libx\*.jar) Do Call %0 CPGEN %%X
 
 Rem Starting yacy
 Echo Generated Classpath:%CLASSPATH%
-javaw -classpath %CLASSPATH% yacy
+javaw -classpath %CLASSPATH% net.yacy.yacy
 Echo You can close the console safely
 
 GoTo :END
diff --git a/stopYACY.bat b/stopYACY.bat
index 02e75a11a..6ecbd9311 100644
--- a/stopYACY.bat
+++ b/stopYACY.bat
@@ -9,7 +9,7 @@ For %%X in (libx/*.jar) Do Call %0 CPGEN libx\%%X
 
 Rem Stopping yacy
 Echo Generated Classpath:%CLASSPATH%
-java -classpath %CLASSPATH% yacy -shutdown
+java -classpath %CLASSPATH% net.yacy.yacy -shutdown
 
 GoTo :END
 
diff --git a/stopYACY.command b/stopYACY.command
index 555f9c43f..3f74ac735 100755
--- a/stopYACY.command
+++ b/stopYACY.command
@@ -5,7 +5,7 @@ CLASSPATH=""
 for N in `ls -1 lib/*.jar`; do CLASSPATH="$CLASSPATH$N:"; done	
 for N in `ls -1 libx/*.jar`; do CLASSPATH="$CLASSPATH$N:"; done
 
-java -classpath classes:htroot:$CLASSPATH yacy -shutdown
+java -classpath classes:htroot:$CLASSPATH net.yacy.yacy -shutdown
 
 echo "Please wait until the YaCy daemon process terminates."
 echo "You can monitor this with 'tail -f DATA/LOG/yacy00.log' and 'fuser log/yacy00.log'"
diff --git a/stopYACY.sh b/stopYACY.sh
index ea46d1618..6152fa0fd 100755
--- a/stopYACY.sh
+++ b/stopYACY.sh
@@ -17,7 +17,7 @@ then
 	for N in lib/*.jar; do CLASSPATH="$CLASSPATH$N:"; done	
 	for N in libx/*.jar; do CLASSPATH="$CLASSPATH$N:"; done
 
-	java -classpath classes:htroot:$CLASSPATH yacy -shutdown
+	java -classpath classes:htroot:$CLASSPATH net.yacy.yacy -shutdown
 
 	echo "Please wait until the YaCy daemon process terminates"
 	echo "You can monitor this with 'tail -f DATA/LOG/yacy00.log' and 'fuser log/yacy00.log'"
diff --git a/stopYACY_Win9x.bat b/stopYACY_Win9x.bat
index 62b8cc158..6c6efa57b 100644
--- a/stopYACY_Win9x.bat
+++ b/stopYACY_Win9x.bat
@@ -8,7 +8,7 @@ For %%X in (libx\*.jar) Do Call %0 CPGEN %%X
 
 Rem Starting yacy
 Echo Generated Classpath:%CLASSPATH%
-java -classpath %CLASSPATH% yacy -shutdown
+java -classpath %CLASSPATH% net.yacy.yacy -shutdown
 
 GoTo :END