diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt
index b7b40d69..52f4cb87 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesFragment.kt
@@ -19,6 +19,8 @@ package com.rtbishop.look4sat.presentation.entriesScreen
 
 import android.os.Bundle
 import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
 import androidx.core.widget.doOnTextChanged
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
@@ -67,6 +69,29 @@ class EntriesFragment : Fragment(R.layout.fragment_entries) {
             }
             entriesBtnSelect.clickWithDebounce { viewModel.selectCurrentItems(true) }
             entriesBtnClear.clickWithDebounce { viewModel.selectCurrentItems(false) }
+
+            val spinnerListener = object : AdapterView.OnItemSelectedListener {
+                override fun onItemSelected(
+                    parent: AdapterView<*>, view: View?,
+                    position: Int, id: Long
+                ) {
+                    viewModel.setSatType(parent.getItemAtPosition(position).toString())
+                }
+
+                override fun onNothingSelected(parent: AdapterView<*>) {
+                    viewModel.setSatType(String())
+                }
+            }
+            ArrayAdapter(
+                requireContext(),
+                android.R.layout.simple_spinner_item,
+                viewModel.satTypes
+            ).also { adapter ->
+                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+                entriesSpinner.onItemSelectedListener = spinnerListener
+                entriesSpinner.adapter = adapter
+            }
+
         }
         viewModel.satData.observe(viewLifecycleOwner) { satData ->
             handleSatData(satData, entriesAdapter)
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt
index 35c438df..93533878 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/entriesScreen/EntriesViewModel.kt
@@ -33,19 +33,28 @@ class EntriesViewModel @Inject constructor(
     private val settings: ISettingsManager
 ) : ViewModel(), EntriesAdapter.EntriesClickListener {
 
+    private val satType = MutableLiveData(String())
     private val transModes = MutableLiveData(settings.loadModesSelection())
     private val currentQuery = MutableLiveData(String())
     private val itemsFromRepo = liveData {
         delay(125)
         emit(loadEntriesWithSelection())
     } as MutableLiveData
+    private val itemsWithType = satType.switchMap { type ->
+        itemsFromRepo.map { items -> filterByType(items, type) }
+    }
     private val itemsWithModes = transModes.switchMap { modes ->
-        itemsFromRepo.map { items -> filterByModes(items, modes) }
+        itemsWithType.map { items -> filterByModes(items, modes) }
     }
     private val itemsWithQuery = currentQuery.switchMap { query ->
         itemsWithModes.map { items -> filterByQuery(items, query) }
     }
     val satData = itemsWithQuery.map { items -> DataState.Success(items) }
+    val satTypes: List<String> = settings.sourcesMap.keys.sorted()
+
+    fun setSatType(type: String) {
+        satType.value = type
+    }
 
     fun selectCurrentItems(selectAll: Boolean) {
         itemsWithQuery.value?.let { itemsWithQuery ->
@@ -83,6 +92,12 @@ class EntriesViewModel @Inject constructor(
         return repository.getEntriesWithModes().onEach { it.isSelected = it.catnum in selectedIds }
     }
 
+    private fun filterByType(items: List<SatItem>, type: String): List<SatItem> {
+        val catnums = settings.loadSatType(type)
+        if (catnums.isEmpty()) return items
+        return items.filter { item -> item.catnum in catnums }
+    }
+
     private fun filterByModes(items: List<SatItem>, modes: List<String>): List<SatItem> {
         if (modes.isEmpty()) return items
         return items.filter { item -> item.modes.any { mode -> mode in modes } }
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt
index 858c8890..f2f3be9d 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsFragment.kt
@@ -133,8 +133,9 @@ class SettingsFragment : Fragment(R.layout.fragment_settings) {
     private fun setupDataCard() {
         binding.run {
             settingsData.dataBtnWeb.clickWithDebounce {
-                val action = SettingsFragmentDirections.settingsToSources()
-                findNavController().navigate(action)
+//                val action = SettingsFragmentDirections.settingsToSources()
+//                findNavController().navigate(action)
+                viewModel.updateDataFromWeb(emptyList())
             }
             settingsData.dataBtnFile.clickWithDebounce { contentRequest.launch("*/*") }
             settingsData.dataBtnClear.clickWithDebounce { viewModel.clearData() }
diff --git a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsViewModel.kt b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsViewModel.kt
index 4d69f906..2737186d 100644
--- a/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsViewModel.kt
+++ b/app/src/main/java/com/rtbishop/look4sat/presentation/settingsScreen/SettingsViewModel.kt
@@ -43,8 +43,9 @@ class SettingsViewModel @Inject constructor(
     }
 
     fun updateDataFromWeb(sources: List<String>) {
-        settings.saveDataSources(sources)
-        repository.updateFromWeb(sources)
+//        settings.saveDataSources(sources)
+//        repository.updateFromWeb(sources)
+        repository.updateFromWebNew()
     }
 
     fun clearData() {
diff --git a/app/src/main/res/layout/fragment_entries.xml b/app/src/main/res/layout/fragment_entries.xml
index e02e357d..240eb9dd 100644
--- a/app/src/main/res/layout/fragment_entries.xml
+++ b/app/src/main/res/layout/fragment_entries.xml
@@ -25,9 +25,9 @@
             android:layout_marginTop="4dp"
             android:layout_marginEnd="52dp"
             android:layout_marginBottom="4dp"
-            android:inputType="text"
             android:hint="@string/entries_search_hint"
-            android:importantForAutofill="no" />
+            android:importantForAutofill="no"
+            android:inputType="text" />
 
         <ImageButton
             android:id="@+id/entries_btn_modes"
@@ -38,12 +38,20 @@
 
     </androidx.cardview.widget.CardView>
 
+    <Spinner
+        android:id="@+id/entries_spinner"
+        android:layout_width="match_parent"
+        android:layout_height="32dp"
+        android:layout_marginStart="@dimen/view_default_margin"
+        android:layout_marginTop="60dp"
+        android:layout_marginEnd="@dimen/view_default_margin" />
+
     <androidx.cardview.widget.CardView
         style="@style/SurfaceCard"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_marginStart="@dimen/view_default_margin"
-        android:layout_marginTop="@dimen/surface_margin_top"
+        android:layout_marginTop="98dp"
         android:layout_marginEnd="@dimen/view_default_margin"
         android:layout_marginBottom="@dimen/surface_margin_bot">
 
@@ -67,16 +75,16 @@
             android:id="@+id/entries_btn_select"
             style="@style/NormalButton"
             android:layout_width="@dimen/button_width_max"
-            android:layout_marginStart="@dimen/button_margin_side"
             android:layout_gravity="start|center_vertical"
+            android:layout_marginStart="@dimen/button_margin_side"
             android:text="@string/btn_select" />
 
         <Button
             android:id="@+id/entries_btn_clear"
             style="@style/NormalButton"
             android:layout_width="@dimen/button_width_max"
-            android:layout_marginEnd="@dimen/button_margin_side"
             android:layout_gravity="end|center_vertical"
+            android:layout_marginEnd="@dimen/button_margin_side"
             android:text="@string/btn_clear_all" />
 
     </com.google.android.material.bottomappbar.BottomAppBar>
@@ -84,8 +92,8 @@
     <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/entries_fab"
         style="@style/FloatingActionButton"
-        android:src="@drawable/ic_done"
         android:contentDescription="@string/btn_done"
+        android:src="@drawable/ic_done"
         app:layout_anchor="@id/entries_bottom_bar" />
 
 </androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt b/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt
index 9a37d97a..9265e0f1 100644
--- a/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt
+++ b/base/src/main/java/com/rtbishop/look4sat/domain/ISettingsManager.kt
@@ -30,7 +30,8 @@ interface ISettingsManager {
         )
     val sourcesMap: Map<String, String>
         get() = mapOf(
-            "AMSAT" to "https://amsat.org/tle/current/nasabare.txt",
+            "All" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=active&FORMAT=csv",
+            "Amsat" to "https://amsat.org/tle/current/nasabare.txt",
             "Amateur" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=amateur&FORMAT=csv",
             "Classified" to "https://www.prismnet.com/~mmccants/tles/classfd.zip",
             "Cubesat" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=cubesat&FORMAT=csv",
@@ -46,7 +47,6 @@ interface ISettingsManager {
             "New" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=last-30-days&FORMAT=csv",
             "OneWeb" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=oneweb&FORMAT=csv",
             "Orbcomm" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=orbcomm&FORMAT=csv",
-            "Other" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=active&FORMAT=csv",
             "Resource" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=resource&FORMAT=csv",
             "SatNOGS" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=satnogs&FORMAT=csv",
             "Science" to "https://celestrak.com/NORAD/elements/gp.php?GROUP=science&FORMAT=csv",