Code cleanup.
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder_findRootOf_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder_findRootOf_Test.java
index ff28551..015dda5 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder_findRootOf_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder_findRootOf_Test.java
@@ -8,7 +8,6 @@
  */
 package com.google.eclipse.protobuf.ui.builder;
 
-import static java.io.File.separator;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.nullValue;
 import static org.junit.Assert.assertThat;
@@ -27,7 +26,7 @@
   private static ProtoDescriptorPathFinder finder;
 
   @BeforeClass public static void setUpOnce() {
-    finder = new ProtoDescriptorPathFinder();
+    finder = new ProtoDescriptorPathFinder("/");
   }
 
   @Rule public ExpectedException thrown = none();
@@ -42,21 +41,11 @@
 
   @Test public void should_throw_error_if_path_does_not_contain_descriptor_FQN() {
     thrown.expect(IllegalArgumentException.class);
-    if (separator.equals("\\")) {
-      thrown.expectMessage("Path '\\usr\\local\\include' does not contain '\\google\\protobuf\\descriptor.proto'");
-      finder.findRootOf("\\usr\\local\\include");
-      return;
-    }
     thrown.expectMessage("Path '/usr/local/include' does not contain '/google/protobuf/descriptor.proto'");
     finder.findRootOf("/usr/local/include");
   }
 
   @Test public void should_find_import_root_of_descriptor() {
-    if (separator.equals("\\")) {
-      String filePath = "\\usr\\local\\include\\google\\protobuf\\descriptor.proto";
-      assertThat(finder.findRootOf(filePath), equalTo("\\usr\\local\\include"));
-      return;
-    }
     String filePath = "/usr/local/include/google/protobuf/descriptor.proto";
     assertThat(finder.findRootOf(filePath), equalTo("/usr/local/include"));
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder.java
index f2d984a..f419144 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/builder/ProtoDescriptorPathFinder.java
@@ -12,19 +12,30 @@
 import static java.util.Arrays.asList;
 import static org.eclipse.xtext.util.Strings.*;
 
+import com.google.inject.Singleton;
+
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
+@Singleton
 class ProtoDescriptorPathFinder {
 
-  private static final String DESCRIPTOR_FQN = concat(separator, asList("", "google", "protobuf", "descriptor.proto"));
-
-  public String findRootOf(String descriptorFilePath) {
+  private final String descriptorFqn;
+  
+  ProtoDescriptorPathFinder() {
+    this(separator);
+  }
+  
+  ProtoDescriptorPathFinder(String fileSeparator) {
+    descriptorFqn = concat(separator, asList("", "google", "protobuf", "descriptor.proto"));
+  }
+    
+  String findRootOf(String descriptorFilePath) {
     if (isEmpty(descriptorFilePath)) return null;
-    int indexOfDescriptorFqn = descriptorFilePath.indexOf(DESCRIPTOR_FQN);
+    int indexOfDescriptorFqn = descriptorFilePath.indexOf(descriptorFqn);
     if (indexOfDescriptorFqn == -1) {
       String format = "Path '%s' does not contain '%s'";
-      throw new IllegalArgumentException(String.format(format, descriptorFilePath, DESCRIPTOR_FQN));
+      throw new IllegalArgumentException(String.format(format, descriptorFilePath, descriptorFqn));
     }
     return descriptorFilePath.substring(0, indexOfDescriptorFqn);
   }