diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java b/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java
index bbbfbd2..bc8f230 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/core/IFeature.java
@@ -261,6 +261,7 @@
 	 * @deprecated seems nobody uses it
 	 * @since 2.0 
 	 */
+	// VK: deprecated ???
 	// FIXME: javadoc	
 	String[] getArchives();
 	
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Feature.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Feature.java
index af1ce85..8c2cf97 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Feature.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Feature.java
@@ -564,6 +564,8 @@
 		IPluginEntry[] sourceFeaturePluginEntries = getPluginEntries();
 		IPluginEntry[] targetSitePluginEntries = targetFeature.getSite().getPluginEntries();
 		Site tempSite = (Site) SiteManager.getTempSite();
+		// VK: why are we creating a temp site (vs. simple temp directory)
+		// VK: why are we handling feature jar, plugin jar and data files differently wrt download
 
 		// determine list of plugins to install
 		// find the intersection between the two arrays of IPluginEntry...
@@ -747,6 +749,8 @@
 			InputStream featureStream = null;
 			try {
 				featureStream = getInputStreamFor(FEATURE_XML);
+				// VK: this forces everyone to implement feature.xml handling
+				// VK: regardless of the packaging scheme used for the feature. WHY ???
 				new FeatureParser(featureStream, this);
 			} catch (IOException e) {
 				// if we cannot find the feature and or the feature.xml...
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackaged.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackaged.java
index 3263972..8501698 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackaged.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackaged.java
@@ -83,6 +83,11 @@
 	 */
 	public FeaturePackaged(URL url, ISite targetSite)  throws CoreException {
 		super(url, targetSite);
+		// VK: this is really confusing!!!!
+		// VK: call super(URL, ISite), which calls initializeFeature(), which attempts to
+		// VK: open stream on feature.xml, calls getInputStreamFor("freature.xnml") which
+		// VK: is overidden here. Since we are given the URL why not just create the
+		// VK: feature here ??????
 	}
 
 	/**
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureParser.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureParser.java
index c300423..14313ee 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureParser.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureParser.java
@@ -427,6 +427,7 @@
 	/**
 	 * @see DefaultHandler#characters(char[], int, int)
 	 */
+	// VK: what happens if we are parsing UTF-8 stream ???
 	public void characters(char[] ch, int start, int length) throws SAXException {
 		text = new String(ch,start,length).trim();
 	}
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java
index e452791..cda0dcc 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java
@@ -15,6 +15,8 @@
  * 
  */
 public final class FeatureTypeFactory {
+	// VK: FeatureFactoryManager ???
+	// VK: change to all statics ... is singleton
 
 	private static FeatureTypeFactory inst;
 	
diff --git a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java
index ccfc4a6..28eb6f1 100644
--- a/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java
+++ b/update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java
@@ -15,6 +15,8 @@
  * 
  */
 public final class SiteTypeFactory {
+	// VK: SiteFactoryManager ???
+	// VK: change to all statics ... is singleton
 
 	private static SiteTypeFactory inst;
 	
