diff --git a/Android.mk b/Android.mk
index 5971f74..1efed08 100644
--- a/Android.mk
+++ b/Android.mk
@@ -26,9 +26,6 @@
 LOCAL_STATIC_ANDROID_LIBRARIES := \
     android-support-v4
 
-LOCAL_STATIC_JAVA_LIBRARIES := \
-    settings-intelligence-contract
-
 LOCAL_USE_AAPT2 := true
 
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d915295..07c9f5b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,8 +21,5 @@
     <uses-sdk android:minSdkVersion="25" android:targetSdkVersion="25" />
 
     <application>
-        <service
-            android:name=".suggestions.SuggestionService"
-            android:exported="true" />
     </application>
 </manifest>
diff --git a/contract/Android.mk b/contract/Android.mk
deleted file mode 100644
index 068decf..0000000
--- a/contract/Android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := settings-intelligence-contract
-
-LOCAL_STATIC_JAVA_LIBRARIES := android-support-annotations
-
-LOCAL_SRC_FILES := \
-        $(call all-java-files-under, src) \
-        $(call all-aidl-files-under, src) \
-        $(call all-Iaidl-files-under, src)
-
-LOCAL_SDK_VERSION := system_current
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/contract/src/com/android/settings/intelligence/suggestions/ISuggestionService.aidl b/contract/src/com/android/settings/intelligence/suggestions/ISuggestionService.aidl
deleted file mode 100644
index 2269990..0000000
--- a/contract/src/com/android/settings/intelligence/suggestions/ISuggestionService.aidl
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.android.settings.intelligence.suggestions;
-
-interface ISuggestionService {
-    /**
-     * Whether the suggestion service is enabled.
-     */
-    boolean isEnabled() = 0;
-}
\ No newline at end of file
diff --git a/src/com/android/settings/intelligence/suggestions/SuggestionService.java b/src/com/android/settings/intelligence/suggestions/SuggestionService.java
deleted file mode 100644
index 17a0278..0000000
--- a/src/com/android/settings/intelligence/suggestions/SuggestionService.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.suggestions;
-
-import android.app.Service;
-import android.content.Intent;
-import android.os.IBinder;
-
-public class SuggestionService extends Service {
-
-    private SuggestionServiceBinder mServiceBinder;
-
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        mServiceBinder = new SuggestionServiceBinder(this);
-    }
-
-    @Override
-    public IBinder onBind(Intent intent) {
-        return mServiceBinder;
-    }
-}
diff --git a/src/com/android/settings/intelligence/suggestions/SuggestionServiceBinder.java b/src/com/android/settings/intelligence/suggestions/SuggestionServiceBinder.java
deleted file mode 100644
index b63ae3e..0000000
--- a/src/com/android/settings/intelligence/suggestions/SuggestionServiceBinder.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.suggestions;
-
-import android.content.Context;
-import android.os.RemoteException;
-
-public class SuggestionServiceBinder extends ISuggestionService.Stub {
-
-    private final Context mContext;
-
-    public SuggestionServiceBinder(Context context) {
-        mContext = context;
-    }
-
-    @Override
-    public boolean isEnabled() throws RemoteException {
-        return true;
-    }
-}
