diff --git a/Drupal_Apache_Solr_Service.php b/Drupal_Apache_Solr_Service.php
index feb9585..be5b322 100644
--- a/Drupal_Apache_Solr_Service.php
+++ b/Drupal_Apache_Solr_Service.php
@@ -143,7 +143,7 @@ class DrupalApacheSolrService implements DrupalApacheSolrServiceInterface {
    * @return
    *   (array) With all the system info
    */
-  public function setSystemInfo() {
+  protected function setSystemInfo() {
     $url = $this->_constructUrl(self::SYSTEM_SERVLET, array('wt' => 'json'));
     if ($this->env_id) {
       $this->system_info_cid = $this->env_id . ":system:" . drupal_hash_base64($url);
@@ -734,7 +734,7 @@ class DrupalApacheSolrService implements DrupalApacheSolrServiceInterface {
   /**
    * Like PHP's built in http_build_query(), but uses rawurlencode() and no [] for repeated params.
    */
-  public function httpBuildQuery(array $query, $parent = '') {
+  protected function httpBuildQuery(array $query, $parent = '') {
     $params = array();
 
     foreach ($query as $key => $value) {
diff --git a/apachesolr.interface.inc b/apachesolr.interface.inc
index e6b987a..a13fa8d 100644
--- a/apachesolr.interface.inc
+++ b/apachesolr.interface.inc
@@ -326,14 +326,6 @@ interface DrupalApacheSolrServiceInterface {
   function ping($timeout = 2);
 
   /**
-   * Call the /admin/system servlet
-   *
-   * @return
-   *   (array) With all the system info
-   */
-  function setSystemInfo();
-
-  /**
    * Get information about the Solr Core.
    *
    * @return
@@ -402,32 +394,6 @@ interface DrupalApacheSolrServiceInterface {
   function makeServletRequest($servlet, $params = array(), $options = array());
 
   /**
-   * Escape a value for special query characters such as ':', '(', ')', '*', '?', etc.
-   *
-   * NOTE: inside a phrase fewer characters need escaped, use {@link DrupalApacheSolrService::escapePhrase()} instead
-   *
-   * @param string $value
-   * @return string
-   */
-  static function escape($value);
-
-  /**
-   * Escape a value meant to be contained in a phrase for special query characters
-   *
-   * @param string $value
-   * @return string
-   */
-  static function escapePhrase($value);
-
-  /**
-   * Convenience function for creating phrase syntax from a value
-   *
-   * @param string $value
-   * @return string
-   */
-  static function phrase($value);
-
-  /**
    * Get the Solr url
    *
    * @return string
@@ -534,11 +500,6 @@ interface DrupalApacheSolrServiceInterface {
   function optimize($waitFlush = true, $waitSearcher = true, $timeout = 3600);
 
   /**
-   * Like PHP's built in http_build_query(), but uses rawurlencode() and no [] for repeated params.
-   */
-  function httpBuildQuery(array $query, $parent = '');
-
-  /**
    * Simple Search interface
    *
    * @param string $query The raw query string
diff --git a/tests/Dummy_Solr.php b/tests/Dummy_Solr.php
index 7e5a39c..27286c9 100644
--- a/tests/Dummy_Solr.php
+++ b/tests/Dummy_Solr.php
@@ -5,7 +5,7 @@
  *   Dummy object to simulate a Solr Service
  *
  */
-class DummySolr extends DrupalApacheSolrService implements DrupalApacheSolrServiceInterface {
+class DummySolr implements DrupalApacheSolrServiceInterface {
 
   function getId() {
     return __CLASS__;
@@ -240,5 +240,199 @@ class DummySolr extends DrupalApacheSolrService implements DrupalApacheSolrServi
   public function getLastSearch() {
     return $this->last_search;
   }
+
+ /**
+   * Call the /admin/ping servlet, to test the connection to the server.
+   *
+   * @param $timeout
+   *   maximum time to wait for ping in seconds, -1 for unlimited (default 2).
+   * @return
+   *   (float) seconds taken to ping the server, FALSE if timeout occurs.
+   */
+  function ping($timeout = 2) {
+  }
+
+  /**
+   * Get information about the Solr Core.
+   *
+   * @return
+   *   (string) system info encoded in json
+   */
+  function getSystemInfo() {
+  }
+
+  /**
+   * Get meta-data about the index.
+   */
+  function getLuke($num_terms = 0) {
+  }
+
+  /**
+   * Get information about the Solr Core.
+   *
+   * Returns a Simple XMl document
+   */
+  function getStats() {
+  }
+
+  /**
+   * Get summary information about the Solr Core.
+   */
+  function getStatsSummary() {
+  }
+
+  /**
+   * Clear cached Solr data.
+   */
+  function clearCache() {
+  }
+
+  /**
+   * Constructor
+   *
+   * @param $url
+   *   The URL to the Solr server, possibly including a core name.  E.g. http://localhost:8983/solr/
+   *   or https://search.example.com/solr/core99/
+   * @param $env_id
+   *   The machine name of a corresponding saved configuration used for loading
+   *   data like which facets are enabled.
+   */
+  function __construct($url, $env_id = NULL) {
+  }
+
+  /**
+   * Make a request to a servlet (a path) that's not a standard path.
+   *
+   * @param string $servlet
+   *   A path to be added to the base Solr path. e.g. 'extract/tika'
+   *
+   * @param array $params
+   *   Any request parameters when constructing the URL.
+   *
+   * @param array $options
+   *  @see drupal_http_request() $options.
+   *
+   * @return
+   *  response object
+   *
+   * @thows Exception
+   */
+  function makeServletRequest($servlet, $params = array(), $options = array()) {
+  }
+
+  /**
+   * Get the Solr url
+   *
+   * @return string
+   */
+  function getUrl() {
+  }
+
+  /**
+   * Set the Solr url.
+   *
+   * @param $url
+   *
+   * @return $this
+   */
+  function setUrl($url) {
+  }
+
+  /**
+   * Raw update Method. Takes a raw post body and sends it to the update service. Post body
+   * should be a complete and well formed xml document.
+   *
+   * @param string $rawPost
+   * @param float $timeout Maximum expected duration (in seconds)
+   *
+   * @return response object
+   *
+   * @throws Exception If an error occurs during the service call
+   */
+  function update($rawPost, $timeout = FALSE) {
+  }
+
+  /**
+   * Add an array of Solr Documents to the index all at once
+   *
+   * @param array $documents Should be an array of ApacheSolrDocument instances
+   * @param boolean $allowDups
+   * @param boolean $overwritePending
+   * @param boolean $overwriteCommitted
+   *
+   * @return response objecte
+   *
+   * @throws Exception If an error occurs during the service call
+   */
+  function addDocuments($documents, $overwrite = NULL, $commitWithin = NULL) {
+  }
+
+  /**
+   * Send a commit command.  Will be synchronous unless both wait parameters are set to false.
+   *
+   * @param boolean $optimize Defaults to true
+   * @param boolean $waitFlush Defaults to true
+   * @param boolean $waitSearcher Defaults to true
+   * @param float $timeout Maximum expected duration (in seconds) of the commit operation on the server (otherwise, will throw a communication exception). Defaults to 1 hour
+   *
+   * @return response object
+   *
+   * @throws Exception If an error occurs during the service call
+   */
+  function commit($optimize = true, $waitFlush = true, $waitSearcher = true, $timeout = 3600) {
+  }
+
+  /**
+   * Create a delete document based on document ID
+   *
+   * @param string $id Expected to be utf-8 encoded
+   * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+   *
+   * @return response object
+   *
+   * @throws Exception If an error occurs during the service call
+   */
+   function deleteById($id, $timeout = 3600) {
+   }
+
+  /**
+   * Create and post a delete document based on multiple document IDs.
+   *
+   * @param array $ids Expected to be utf-8 encoded strings
+   * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+   *
+   * @return response object
+   *
+   * @throws Exception If an error occurs during the service call
+   */
+  function deleteByMultipleIds($ids, $timeout = 3600) {
+  }
+
+  /**
+   * Create a delete document based on a query and submit it
+   *
+   * @param string $rawQuery Expected to be utf-8 encoded
+   * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
+   * @return stdClass response object
+   *
+   * @throws Exception If an error occurs during the service call
+   */
+  function deleteByQuery($rawQuery, $timeout = 3600) {
+  }
+
+  /**
+   * Send an optimize command.  Will be synchronous unless both wait parameters are set
+   * to false.
+   *
+   * @param boolean $waitFlush
+   * @param boolean $waitSearcher
+   * @param float $timeout Maximum expected duration of the commit operation on the server (otherwise, will throw a communication exception)
+   *
+   * @return response object
+   *
+   * @throws Exception If an error occurs during the service call
+   */
+  function optimize($waitFlush = true, $waitSearcher = true, $timeout = 3600) {
+  }
 }
 
