changeset 339:e81c18164afb

Fixing backend API Requests
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sat, 03 Apr 2021 13:02:40 +0200
parents 71a9c0e61783
children d17dd5c28211
files LazyBear.xcodeproj/project.pbxproj LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate LazyBear.xcodeproj/xcshareddata/xcschemes/LazyBear.xcscheme LazyBear/Global functions/GenericRequest.swift LazyBear/Global functions/ParseJSON.swift LazyBear/Resources/Phrases.json LazyBear/Resources/companyTags.json LazyBear/Resources/phrases.json LazyBear/Resources/popularCompanies.json LazyBear/Views/Global Helpers/PriceView.swift LazyBear/Views/Home/Helpers/TopStockItem.swift LazyBear/Views/Home/Helpers/TopStockRow.swift LazyBear/Views/Home/HomeView.swift LazyBear/Views/Home/Networking/CompanyQuoteModel.swift LazyBear/Views/Home/Networking/HomeData.swift LazyBear/Views/Home/Networking/HomeModels.swift LazyBear/Views/Home/Networking/IntradayPricesModel.swift LazyBear/Views/Home/Networking/SectorPerformanceModel.swift LazyBear/Views/Home/Networking/TradingDatesModel.swift LazyBear/Views/Home/TradingDates.swift LazyBear/Views/Search/Helpers/ContainerHelper.swift LazyBear/Views/Search/Helpers/PopularCompanyHelper.swift LazyBear/Views/Search/Helpers/ScrollViewHelper.swift LazyBear/Views/Search/Networking/BatchCompanyQuoteModel.swift LazyBear/Views/Search/Networking/CompanyTagsModel.swift LazyBear/Views/Search/Networking/PopularCompanyModel.swift LazyBear/Views/Search/Networking/SearchData.swift LazyBear/Views/Search/Networking/UnplashPhotoModel.swift LazyBear/Views/Search/SearchView.swift
diffstat 29 files changed, 413 insertions(+), 2626 deletions(-) [+]
line wrap: on
line diff
--- a/LazyBear.xcodeproj/project.pbxproj	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear.xcodeproj/project.pbxproj	Sat Apr 03 13:02:40 2021 +0200
@@ -14,9 +14,8 @@
 		951566E72613A2B6007C0F36 /* TradingDates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 951566E62613A2B6007C0F36 /* TradingDates.swift */; };
 		951566EA2613A37C007C0F36 /* TradingDatesItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 951566E92613A37C007C0F36 /* TradingDatesItem.swift */; };
 		952045152610C7C600A76362 /* ConvertEpoch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 952045142610C7C600A76362 /* ConvertEpoch.swift */; };
-		9523ED422615BDB2006D3D6F /* Phrases.json in Resources */ = {isa = PBXBuildFile; fileRef = 9523ED412615BDB2006D3D6F /* Phrases.json */; };
+		9523ED422615BDB2006D3D6F /* phrases.json in Resources */ = {isa = PBXBuildFile; fileRef = 9523ED412615BDB2006D3D6F /* phrases.json */; };
 		9523ED542615CB7F006D3D6F /* HomeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9523ED532615CB7F006D3D6F /* HomeData.swift */; };
-		9523ED592615D1D8006D3D6F /* GenericRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9523ED582615D1D8006D3D6F /* GenericRequest.swift */; };
 		954D7EA7260BBA6600A13C50 /* WatchlistCompany+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954D7EA5260BBA6600A13C50 /* WatchlistCompany+CoreDataClass.swift */; };
 		954D7EA8260BBA6600A13C50 /* WatchlistCompany+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954D7EA6260BBA6600A13C50 /* WatchlistCompany+CoreDataProperties.swift */; };
 		954D7EC2260BE70C00A13C50 /* SwiftlySearch in Frameworks */ = {isa = PBXBuildFile; productRef = 954D7EC1260BE70C00A13C50 /* SwiftlySearch */; };
@@ -30,15 +29,20 @@
 		95672B9625DDA54700DCBE4A /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95672B9525DDA54700DCBE4A /* Preview Assets.xcassets */; };
 		95672B9825DDA54700DCBE4A /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95672B9725DDA54700DCBE4A /* Persistence.swift */; };
 		95672B9B25DDA54800DCBE4A /* LazyBear.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 95672B9925DDA54800DCBE4A /* LazyBear.xcdatamodeld */; };
-		95893DCE2613C46B003698C5 /* HomeModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95893DCD2613C46B003698C5 /* HomeModels.swift */; };
+		95893DCE2613C46B003698C5 /* CompanyQuoteModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95893DCD2613C46B003698C5 /* CompanyQuoteModel.swift */; };
 		958A735225E0170900FD7ECA /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 958A735125E0170900FD7ECA /* CloudKit.framework */; };
+		95A5186A26185AAB0002D27C /* GenericRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5186926185AAB0002D27C /* GenericRequest.swift */; };
+		95A5186E26186A6E0002D27C /* popularCompanies.json in Resources */ = {isa = PBXBuildFile; fileRef = 95A5186D26186A6E0002D27C /* popularCompanies.json */; };
+		95A5187126186C120002D27C /* PopularCompanyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5187026186C120002D27C /* PopularCompanyModel.swift */; };
+		95A5187426186C680002D27C /* SectorPerformanceModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5187326186C680002D27C /* SectorPerformanceModel.swift */; };
+		95A5187726186C830002D27C /* IntradayPricesModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5187626186C830002D27C /* IntradayPricesModel.swift */; };
+		95A5187A26186C960002D27C /* TradingDatesModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5187926186C960002D27C /* TradingDatesModel.swift */; };
+		95A5188226186DB30002D27C /* SearchData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5188126186DB30002D27C /* SearchData.swift */; };
+		95A5188626186F590002D27C /* PriceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5188526186F590002D27C /* PriceView.swift */; };
+		95A51889261873D50002D27C /* BatchCompanyQuoteModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A51888261873D50002D27C /* BatchCompanyQuoteModel.swift */; };
 		95A7C066261639E0003E2EC1 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C065261639DF003E2EC1 /* SearchView.swift */; };
-		95A7C06A26163B54003E2EC1 /* ContainerHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C06926163B54003E2EC1 /* ContainerHelper.swift */; };
-		95A7C06D26163BDA003E2EC1 /* ScrollViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C06C26163BDA003E2EC1 /* ScrollViewHelper.swift */; };
-		95A7C0712616408C003E2EC1 /* companyTags.json in Resources */ = {isa = PBXBuildFile; fileRef = 95A7C0702616408C003E2EC1 /* companyTags.json */; };
+		95A7C06A26163B54003E2EC1 /* PopularCompanyHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C06926163B54003E2EC1 /* PopularCompanyHelper.swift */; };
 		95A7C0742616409D003E2EC1 /* ParseJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C0732616409D003E2EC1 /* ParseJSON.swift */; };
-		95A7C077261640C5003E2EC1 /* CompanyTagsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C076261640C5003E2EC1 /* CompanyTagsModel.swift */; };
-		95A7C07A2616459A003E2EC1 /* UnplashPhotoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C0792616459A003E2EC1 /* UnplashPhotoModel.swift */; };
 		95AD4A2D26078C1400498079 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AD4A2C26078C1400498079 /* ContentView.swift */; };
 		95E745DA2614624500744A1E /* HomeDataPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95E745D92614624500744A1E /* HomeDataPreview.swift */; };
 		95ECCA5D2612169200A67EFA /* LineShape.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95ECCA5C2612169200A67EFA /* LineShape.swift */; };
@@ -55,9 +59,8 @@
 		951566E62613A2B6007C0F36 /* TradingDates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TradingDates.swift; sourceTree = "<group>"; };
 		951566E92613A37C007C0F36 /* TradingDatesItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TradingDatesItem.swift; sourceTree = "<group>"; };
 		952045142610C7C600A76362 /* ConvertEpoch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConvertEpoch.swift; sourceTree = "<group>"; };
-		9523ED412615BDB2006D3D6F /* Phrases.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = Phrases.json; sourceTree = "<group>"; };
+		9523ED412615BDB2006D3D6F /* phrases.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = phrases.json; sourceTree = "<group>"; };
 		9523ED532615CB7F006D3D6F /* HomeData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeData.swift; sourceTree = "<group>"; };
-		9523ED582615D1D8006D3D6F /* GenericRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericRequest.swift; sourceTree = "<group>"; };
 		954D7EA5260BBA6600A13C50 /* WatchlistCompany+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WatchlistCompany+CoreDataClass.swift"; sourceTree = "<group>"; };
 		954D7EA6260BBA6600A13C50 /* WatchlistCompany+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WatchlistCompany+CoreDataProperties.swift"; sourceTree = "<group>"; };
 		9550443926111B2B000E0BCB /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = "<group>"; };
@@ -72,16 +75,21 @@
 		95672B9725DDA54700DCBE4A /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
 		95672B9A25DDA54800DCBE4A /* LazyBear.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = LazyBear.xcdatamodel; sourceTree = "<group>"; };
 		95672B9C25DDA54800DCBE4A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		95893DCD2613C46B003698C5 /* HomeModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeModels.swift; sourceTree = "<group>"; };
+		95893DCD2613C46B003698C5 /* CompanyQuoteModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompanyQuoteModel.swift; sourceTree = "<group>"; };
 		958A734E25E016FD00FD7ECA /* LazyBear.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = LazyBear.entitlements; sourceTree = "<group>"; };
 		958A735125E0170900FD7ECA /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; };
+		95A5186926185AAB0002D27C /* GenericRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericRequest.swift; sourceTree = "<group>"; };
+		95A5186D26186A6E0002D27C /* popularCompanies.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = popularCompanies.json; sourceTree = "<group>"; };
+		95A5187026186C120002D27C /* PopularCompanyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopularCompanyModel.swift; sourceTree = "<group>"; };
+		95A5187326186C680002D27C /* SectorPerformanceModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectorPerformanceModel.swift; sourceTree = "<group>"; };
+		95A5187626186C830002D27C /* IntradayPricesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntradayPricesModel.swift; sourceTree = "<group>"; };
+		95A5187926186C960002D27C /* TradingDatesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TradingDatesModel.swift; sourceTree = "<group>"; };
+		95A5188126186DB30002D27C /* SearchData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchData.swift; sourceTree = "<group>"; };
+		95A5188526186F590002D27C /* PriceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PriceView.swift; sourceTree = "<group>"; };
+		95A51888261873D50002D27C /* BatchCompanyQuoteModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatchCompanyQuoteModel.swift; sourceTree = "<group>"; };
 		95A7C065261639DF003E2EC1 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = "<group>"; };
-		95A7C06926163B54003E2EC1 /* ContainerHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainerHelper.swift; sourceTree = "<group>"; };
-		95A7C06C26163BDA003E2EC1 /* ScrollViewHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollViewHelper.swift; sourceTree = "<group>"; };
-		95A7C0702616408C003E2EC1 /* companyTags.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = companyTags.json; sourceTree = "<group>"; };
+		95A7C06926163B54003E2EC1 /* PopularCompanyHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopularCompanyHelper.swift; sourceTree = "<group>"; };
 		95A7C0732616409D003E2EC1 /* ParseJSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParseJSON.swift; sourceTree = "<group>"; };
-		95A7C076261640C5003E2EC1 /* CompanyTagsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompanyTagsModel.swift; sourceTree = "<group>"; };
-		95A7C0792616459A003E2EC1 /* UnplashPhotoModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnplashPhotoModel.swift; sourceTree = "<group>"; };
 		95AD4A2C26078C1400498079 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
 		95E745D92614624500744A1E /* HomeDataPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeDataPreview.swift; sourceTree = "<group>"; };
 		95ECCA5C2612169200A67EFA /* LineShape.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineShape.swift; sourceTree = "<group>"; };
@@ -120,8 +128,8 @@
 			isa = PBXGroup;
 			children = (
 				952045142610C7C600A76362 /* ConvertEpoch.swift */,
-				9523ED582615D1D8006D3D6F /* GenericRequest.swift */,
 				95A7C0732616409D003E2EC1 /* ParseJSON.swift */,
+				95A5186926185AAB0002D27C /* GenericRequest.swift */,
 			);
 			path = "Global functions";
 			sourceTree = "<group>";
@@ -129,8 +137,8 @@
 		9523ED402615BD93006D3D6F /* Resources */ = {
 			isa = PBXGroup;
 			children = (
-				95A7C0702616408C003E2EC1 /* companyTags.json */,
-				9523ED412615BDB2006D3D6F /* Phrases.json */,
+				9523ED412615BDB2006D3D6F /* phrases.json */,
+				95A5186D26186A6E0002D27C /* popularCompanies.json */,
 			);
 			path = Resources;
 			sourceTree = "<group>";
@@ -222,7 +230,10 @@
 			isa = PBXGroup;
 			children = (
 				9523ED532615CB7F006D3D6F /* HomeData.swift */,
-				95893DCD2613C46B003698C5 /* HomeModels.swift */,
+				95893DCD2613C46B003698C5 /* CompanyQuoteModel.swift */,
+				95A5187926186C960002D27C /* TradingDatesModel.swift */,
+				95A5187626186C830002D27C /* IntradayPricesModel.swift */,
+				95A5187326186C680002D27C /* SectorPerformanceModel.swift */,
 			);
 			path = Networking;
 			sourceTree = "<group>";
@@ -232,6 +243,7 @@
 			children = (
 				95ECCA5F261216D500A67EFA /* LineView.swift */,
 				95ECCA5C2612169200A67EFA /* LineShape.swift */,
+				95A5188526186F590002D27C /* PriceView.swift */,
 			);
 			path = "Global Helpers";
 			sourceTree = "<group>";
@@ -257,8 +269,7 @@
 		95A7C06226163951003E2EC1 /* Helpers */ = {
 			isa = PBXGroup;
 			children = (
-				95A7C06C26163BDA003E2EC1 /* ScrollViewHelper.swift */,
-				95A7C06926163B54003E2EC1 /* ContainerHelper.swift */,
+				95A7C06926163B54003E2EC1 /* PopularCompanyHelper.swift */,
 			);
 			path = Helpers;
 			sourceTree = "<group>";
@@ -266,8 +277,9 @@
 		95A7C06326163957003E2EC1 /* Networking */ = {
 			isa = PBXGroup;
 			children = (
-				95A7C0792616459A003E2EC1 /* UnplashPhotoModel.swift */,
-				95A7C076261640C5003E2EC1 /* CompanyTagsModel.swift */,
+				95A5188126186DB30002D27C /* SearchData.swift */,
+				95A5187026186C120002D27C /* PopularCompanyModel.swift */,
+				95A51888261873D50002D27C /* BatchCompanyQuoteModel.swift */,
 			);
 			path = Networking;
 			sourceTree = "<group>";
@@ -362,9 +374,9 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				95A5186E26186A6E0002D27C /* popularCompanies.json in Resources */,
 				95672B9625DDA54700DCBE4A /* Preview Assets.xcassets in Resources */,
-				9523ED422615BDB2006D3D6F /* Phrases.json in Resources */,
-				95A7C0712616408C003E2EC1 /* companyTags.json in Resources */,
+				9523ED422615BDB2006D3D6F /* phrases.json in Resources */,
 				95672B9325DDA54700DCBE4A /* Assets.xcassets in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -377,34 +389,38 @@
 			buildActionMask = 2147483647;
 			files = (
 				950C36E3260FB6180081CF53 /* HapticsManager.swift in Sources */,
-				9523ED592615D1D8006D3D6F /* GenericRequest.swift in Sources */,
+				95A5186A26185AAB0002D27C /* GenericRequest.swift in Sources */,
 				95E745DA2614624500744A1E /* HomeDataPreview.swift in Sources */,
+				95A5187726186C830002D27C /* IntradayPricesModel.swift in Sources */,
+				95A5188626186F590002D27C /* PriceView.swift in Sources */,
 				9550444926111FC9000E0BCB /* TopStockRow.swift in Sources */,
 				9523ED542615CB7F006D3D6F /* HomeData.swift in Sources */,
 				9550444326111E7A000E0BCB /* SectorRow.swift in Sources */,
 				95ECCA60261216D500A67EFA /* LineView.swift in Sources */,
-				95A7C06D26163BDA003E2EC1 /* ScrollViewHelper.swift in Sources */,
 				9550443A26111B2B000E0BCB /* HomeView.swift in Sources */,
 				950C36E8260FBB550081CF53 /* UserSettings+CoreDataClass.swift in Sources */,
+				95A5187426186C680002D27C /* SectorPerformanceModel.swift in Sources */,
 				95672B9825DDA54700DCBE4A /* Persistence.swift in Sources */,
 				95A7C0742616409D003E2EC1 /* ParseJSON.swift in Sources */,
 				950C36E9260FBB550081CF53 /* UserSettings+CoreDataProperties.swift in Sources */,
 				954D7EA8260BBA6600A13C50 /* WatchlistCompany+CoreDataProperties.swift in Sources */,
 				951566E72613A2B6007C0F36 /* TradingDates.swift in Sources */,
-				95893DCE2613C46B003698C5 /* HomeModels.swift in Sources */,
+				95893DCE2613C46B003698C5 /* CompanyQuoteModel.swift in Sources */,
 				95672B8F25DDA54700DCBE4A /* LazyBearApp.swift in Sources */,
 				95A7C066261639E0003E2EC1 /* SearchView.swift in Sources */,
+				95A51889261873D50002D27C /* BatchCompanyQuoteModel.swift in Sources */,
 				95ECCA5D2612169200A67EFA /* LineShape.swift in Sources */,
-				95A7C06A26163B54003E2EC1 /* ContainerHelper.swift in Sources */,
+				95A7C06A26163B54003E2EC1 /* PopularCompanyHelper.swift in Sources */,
 				9550444C26111FED000E0BCB /* TopStockItem.swift in Sources */,
 				951566EA2613A37C007C0F36 /* TradingDatesItem.swift in Sources */,
 				951490552610BD2B00BDEEB5 /* WelcomeView.swift in Sources */,
+				95A5188226186DB30002D27C /* SearchData.swift in Sources */,
+				95A5187A26186C960002D27C /* TradingDatesModel.swift in Sources */,
 				9550444626111EE5000E0BCB /* SectorItem.swift in Sources */,
-				95A7C077261640C5003E2EC1 /* CompanyTagsModel.swift in Sources */,
+				95A5187126186C120002D27C /* PopularCompanyModel.swift in Sources */,
 				954D7EA7260BBA6600A13C50 /* WatchlistCompany+CoreDataClass.swift in Sources */,
 				95672B9B25DDA54800DCBE4A /* LazyBear.xcdatamodeld in Sources */,
 				95AD4A2D26078C1400498079 /* ContentView.swift in Sources */,
-				95A7C07A2616459A003E2EC1 /* UnplashPhotoModel.swift in Sources */,
 				952045152610C7C600A76362 /* ConvertEpoch.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
Binary file LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate has changed
--- a/LazyBear.xcodeproj/xcshareddata/xcschemes/LazyBear.xcscheme	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear.xcodeproj/xcshareddata/xcschemes/LazyBear.xcscheme	Sat Apr 03 13:02:40 2021 +0200
@@ -31,7 +31,7 @@
       </Testables>
    </TestAction>
    <LaunchAction
-      buildConfiguration = "Debug"
+      buildConfiguration = "Release"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       launchStyle = "0"
--- a/LazyBear/Global functions/GenericRequest.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Global functions/GenericRequest.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -2,7 +2,7 @@
 //  GenericRequest.swift
 //  LazyBear
 //
-//  Created by Dennis Concepción Martín on 1/4/21.
+//  Created by Dennis Concepción Martín on 3/4/21.
 //
 
 import SwiftUI
--- a/LazyBear/Global functions/ParseJSON.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Global functions/ParseJSON.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -7,7 +7,7 @@
 
 import Foundation
 
-let companyTags: [CompanyTagsModel] = parseJSON("companyTags.json")
+let popularCompanies: [PopularCompanyModel] = parseJSON("popularCompanies.json")
 
 func parseJSON<T: Decodable>(_ filename: String) -> T {
     let data: Data
--- a/LazyBear/Resources/Phrases.json	Thu Apr 01 20:55:09 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-[
-    {
-        "funny": [
-            "Tomorrow is often the busiest day of the week",
-            "They shorted my stock, I shortened their lives",
-            "The stock market is still les volatile than most of my romantic relationships",
-            "Dear diary, today the stock market did not crash",
-            "If you want to trade in derivates, god bless you",
-            "When the market crash, just take the absolute value",
-            "I was losing money before the stock market crashed",
-            "The Lazybear of Wall Street",
-            "Can't lose your savings if you have no savings",
-            "Stonks",
-            "So you dont buy more when a stock goes down?",
-            "Hey the stock market is up AAAA It's down",
-            "Top 3 richest people: Musk, Bezos, not you",
-            "Oh no... my stock did what?",
-            "Are you a Redditor?",
-            "No I don't know what happened",
-            "Hey, Do you want some quantitative easing?",
-            "Money printer go Brrr",
-            "You have two cows. The State takes both of them and gives you the milk"
-        ]
-    }
-]
--- a/LazyBear/Resources/companyTags.json	Thu Apr 01 20:55:09 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2318 +0,0 @@
-[
-  {
-    "name": "Other Financial Vehicles "
-  },
-  {
-    "name": "Sovereign"
-  },
-  {
-    "name": "Multi-Line Insurance"
-  },
-  {
-    "name": "Sporting Goods Stores "
-  },
-  {
-    "name": "Internet Publishing and Broadcasting and Web Search Portals"
-  },
-  {
-    "name": "Optical Instrument and Lens Manufacturing "
-  },
-  {
-    "name": "Convention and Trade Show Organizers"
-  },
-  {
-    "name": "Metal Kitchen Cookware, Utensil, Cutlery, and Flatware (except Precious) Manufacturing "
-  },
-  {
-    "name": "Food Distributors"
-  },
-  {
-    "name": "Fish and Seafood Markets "
-  },
-  {
-    "name": "Iron and Steel Forging "
-  },
-  {
-    "name": "Tobacco Stores "
-  },
-  {
-    "name": "Other Commercial and Service Industry Machinery Manufacturing "
-  },
-  {
-    "name": "Other Basic Inorganic Chemical Manufacturing "
-  },
-  {
-    "name": "Other Technical and Trade Schools "
-  },
-  {
-    "name": "Other Nonscheduled Air Transportation "
-  },
-  {
-    "name": "Soft Drink Manufacturing "
-  },
-  {
-    "name": "All Other Petroleum and Coal Products Manufacturing "
-  },
-  {
-    "name": "Jewelry and Silverware Manufacturing "
-  },
-  {
-    "name": "Petroleum Bulk Stations and Terminals "
-  },
-  {
-    "name": "Amusement and Theme Parks "
-  },
-  {
-    "name": "All Other Home Furnishings Stores "
-  },
-  {
-    "name": "General Medical and Surgical Hospitals "
-  },
-  {
-    "name": "Metal Fabrication"
-  },
-  {
-    "name": "General Government"
-  },
-  {
-    "name": "Service Establishment Equipment and Supplies Merchant Wholesalers "
-  },
-  {
-    "name": "All Other General Merchandise Stores "
-  },
-  {
-    "name": "Nonchocolate Confectionery Manufacturing"
-  },
-  {
-    "name": "Other Personal Care Services "
-  },
-  {
-    "name": "Funeral Homes and Funeral Services "
-  },
-  {
-    "name": "Industrial Machinery and Equipment Merchant Wholesalers "
-  },
-  {
-    "name": "Broadwoven Fabric Mills"
-  },
-  {
-    "name": "Other Chemical and Fertilizer Mineral Mining "
-  },
-  {
-    "name": "Industrial Supplies Merchant Wholesalers"
-  },
-  {
-    "name": "Electronics Stores "
-  },
-  {
-    "name": "Dental Equipment and Supplies Manufacturing "
-  },
-  {
-    "name": "Other Motor Vehicle Parts Manufacturing"
-  },
-  {
-    "name": "Pipeline Transportation of Natural Gas"
-  },
-  {
-    "name": "Mining Machinery and Equipment Manufacturing "
-  },
-  {
-    "name": "Pharmaceuticals: Other"
-  },
-  {
-    "name": "Water Utilities"
-  },
-  {
-    "name": "Computer and Computer Peripheral Equipment and Software Merchant Wholesalers "
-  },
-  {
-    "name": "Other Services (except Public Administration)"
-  },
-  {
-    "name": "Wood Office Furniture Manufacturing "
-  },
-  {
-    "name": "All Other Miscellaneous Food Manufacturing "
-  },
-  {
-    "name": "Administrative and Support and Waste Management and Remediation Services"
-  },
-  {
-    "name": "Toilet Preparation Manufacturing"
-  },
-  {
-    "name": "Air Freight/Couriers"
-  },
-  {
-    "name": "Gold Ore and Silver Ore Mining"
-  },
-  {
-    "name": "Miscellaneous Commercial Services"
-  },
-  {
-    "name": "Scheduled Freight Air Transportation "
-  },
-  {
-    "name": "Other Individual and Family Services "
-  },
-  {
-    "name": "Environmental Services"
-  },
-  {
-    "name": "Office Machinery and Equipment Rental and Leasing"
-  },
-  {
-    "name": "Beverages: Alcoholic"
-  },
-  {
-    "name": "Aerospace & Defense"
-  },
-  {
-    "name": "Financial Publishing/Services"
-  },
-  {
-    "name": "Outdoor Advertising"
-  },
-  {
-    "name": "Dog and Cat Food Manufacturing "
-  },
-  {
-    "name": "Jewelry, Watch, Precious Stone, and Precious Metal Merchant Wholesalers "
-  },
-  {
-    "name": "Consumer Lending "
-  },
-  {
-    "name": "Software Publishers"
-  },
-  {
-    "name": "Catalog/Specialty Distribution"
-  },
-  {
-    "name": "Consumer Sundries"
-  },
-  {
-    "name": "Sports Teams and Clubs "
-  },
-  {
-    "name": "Fabricated Pipe and Pipe Fitting Manufacturing "
-  },
-  {
-    "name": "Publishing: Newspapers"
-  },
-  {
-    "name": "Current-Carrying Wiring Device Manufacturing "
-  },
-  {
-    "name": "Engineering & Construction"
-  },
-  {
-    "name": "Third Party Administration of Insurance and Pension Funds "
-  },
-  {
-    "name": "All Other Support Activities for Transportation "
-  },
-  {
-    "name": "Capacitor, Resistor, Coil, Transformer, and Other Inductor Manufacturing "
-  },
-  {
-    "name": "Offices of Physicians (except Mental Health Specialists) "
-  },
-  {
-    "name": "Other Direct Selling Establishments "
-  },
-  {
-    "name": "Security Guards and Patrol Services "
-  },
-  {
-    "name": "Commercial Photography "
-  },
-  {
-    "name": "Iron Ore Mining"
-  },
-  {
-    "name": "Direct Life Insurance Carriers "
-  },
-  {
-    "name": "Industrial Specialties"
-  },
-  {
-    "name": "Colleges, Universities, and Professional Schools "
-  },
-  {
-    "name": "Amusement Arcades"
-  },
-  {
-    "name": "Precious Metals"
-  },
-  {
-    "name": "Chemicals: Specialty"
-  },
-  {
-    "name": "Industrial Conglomerates"
-  },
-  {
-    "name": "Florists "
-  },
-  {
-    "name": "Apparel Accessories and Other Apparel Manufacturing "
-  },
-  {
-    "name": "Manufactured Home (Mobile Home) Manufacturing "
-  },
-  {
-    "name": "Electronic Production Equipment"
-  },
-  {
-    "name": "Farm Supplies Merchant Wholesalers "
-  },
-  {
-    "name": "Internet Software/Services"
-  },
-  {
-    "name": "Automotive Parts and Accessories Stores "
-  },
-  {
-    "name": "Electronics/Appliances"
-  },
-  {
-    "name": "Electrical Products"
-  },
-  {
-    "name": "Transportation and Warehousing"
-  },
-  {
-    "name": "Analytical Laboratory Instrument Manufacturing "
-  },
-  {
-    "name": "Home Centers "
-  },
-  {
-    "name": "Reinsurance Carriers "
-  },
-  {
-    "name": "Travel Agencies"
-  },
-  {
-    "name": "Directory and Mailing List Publishers "
-  },
-  {
-    "name": "Electronic Shopping and Mail-Order Houses "
-  },
-  {
-    "name": "All Other Miscellaneous Waste Management Services "
-  },
-  {
-    "name": "Berry (except Strawberry) Farming "
-  },
-  {
-    "name": "Air-Conditioning and Warm Air Heating Equipment and Commercial and Industrial Refrigeration Equipment Manufacturing "
-  },
-  {
-    "name": "Investment Banks/Brokers"
-  },
-  {
-    "name": "Automotive Body, Paint, and Interior Repair and Maintenance "
-  },
-  {
-    "name": "Managed Health Care"
-  },
-  {
-    "name": "Technology Services"
-  },
-  {
-    "name": "All Other Outpatient Care Centers "
-  },
-  {
-    "name": "Periodical Publishers "
-  },
-  {
-    "name": "Real Estate Development"
-  },
-  {
-    "name": "Wine and Distilled Alcoholic Beverage Merchant Wholesalers "
-  },
-  {
-    "name": "Prefabricated Wood Building Manufacturing "
-  },
-  {
-    "name": "Containers/Packaging"
-  },
-  {
-    "name": "Computer Processing Hardware"
-  },
-  {
-    "name": "Bituminous Coal Underground Mining "
-  },
-  {
-    "name": "Water and Sewer Line and Related Structures Construction "
-  },
-  {
-    "name": "Broadcasting"
-  },
-  {
-    "name": "Oil & Gas Pipelines"
-  },
-  {
-    "name": "Packaged Software"
-  },
-  {
-    "name": "Aluminum Sheet, Plate, and Foil Manufacturing "
-  },
-  {
-    "name": "Personnel Services"
-  },
-  {
-    "name": "Lawn and Garden Tractor and Home Lawn and Garden Equipment Manufacturing "
-  },
-  {
-    "name": "Power-Driven Handtool Manufacturing "
-  },
-  {
-    "name": "Fruit and Vegetable Canning "
-  },
-  {
-    "name": "Pottery, Ceramics, and Plumbing Fixture Manufacturing "
-  },
-  {
-    "name": "Cookie and Cracker Manufacturing "
-  },
-  {
-    "name": "Other Transportation"
-  },
-  {
-    "name": "Electrical Apparatus and Equipment, Wiring Supplies, and Related Equipment Merchant Wholesalers "
-  },
-  {
-    "name": "All Other Information Services"
-  },
-  {
-    "name": "Commodity Contracts Brokerage "
-  },
-  {
-    "name": "Flour Milling "
-  },
-  {
-    "name": "Totalizing Fluid Meter and Counting Device Manufacturing "
-  },
-  {
-    "name": "Sanitary Paper Product Manufacturing "
-  },
-  {
-    "name": "Motor Vehicle Body Manufacturing "
-  },
-  {
-    "name": "Aircraft Manufacturing "
-  },
-  {
-    "name": "Fossil Fuel Electric Power Generation "
-  },
-  {
-    "name": "Temporary Help Services"
-  },
-  {
-    "name": "Sporting and Recreational Goods and Supplies Merchant Wholesalers "
-  },
-  {
-    "name": "Accommodation and Food Services"
-  },
-  {
-    "name": "Industrial Machinery"
-  },
-  {
-    "name": "Automobile Manufacturing "
-  },
-  {
-    "name": "Outpatient Mental Health and Substance Abuse Centers "
-  },
-  {
-    "name": "Motor and Generator Manufacturing "
-  },
-  {
-    "name": "Motor Vehicle Seating and Interior Trim Manufacturing"
-  },
-  {
-    "name": "Hardware Manufacturing"
-  },
-  {
-    "name": "Offices of Real Estate Agents and Brokers"
-  },
-  {
-    "name": "Rice Milling "
-  },
-  {
-    "name": "Hobby, Toy, and Game Stores "
-  },
-  {
-    "name": "Other Food Crops Grown Under Cover "
-  },
-  {
-    "name": "All Other Business Support Services "
-  },
-  {
-    "name": "All Other Travel Arrangement and Reservation Services "
-  },
-  {
-    "name": "Surgical and Medical Instrument Manufacturing "
-  },
-  {
-    "name": "Other Chemical and Allied Products Merchant Wholesalers "
-  },
-  {
-    "name": "Scenic and Sightseeing Transportation, Land"
-  },
-  {
-    "name": "Real Estate Credit "
-  },
-  {
-    "name": "Professional, Scientific, and Technical Services"
-  },
-  {
-    "name": "Household Furniture (except Wood and Metal) Manufacturing "
-  },
-  {
-    "name": "Supermarkets and Other Grocery (except Convenience) Stores "
-  },
-  {
-    "name": "Management of Companies and Enterprises"
-  },
-  {
-    "name": "Medicinal and Botanical Manufacturing "
-  },
-  {
-    "name": "Cable and Other Subscription Programming"
-  },
-  {
-    "name": "Other Electric Power Generation "
-  },
-  {
-    "name": "Energy Minerals"
-  },
-  {
-    "name": "Diagnostic Imaging Centers "
-  },
-  {
-    "name": "Miscellaneous Intermediation "
-  },
-  {
-    "name": "Animal (except Poultry) Slaughtering "
-  },
-  {
-    "name": "Direct Health and Medical Insurance Carriers "
-  },
-  {
-    "name": "Non-Energy Minerals"
-  },
-  {
-    "name": "Dental Laboratories "
-  },
-  {
-    "name": "Highway, Street, and Bridge Construction "
-  },
-  {
-    "name": "Women's, Children's, and Infants' Clothing and Accessories Merchant Wholesalers "
-  },
-  {
-    "name": "Oilfield Services/Equipment"
-  },
-  {
-    "name": "Geophysical Surveying and Mapping Services"
-  },
-  {
-    "name": "Specialty Insurance"
-  },
-  {
-    "name": "All Other Miscellaneous Manufacturing "
-  },
-  {
-    "name": "Metal Ore Mining"
-  },
-  {
-    "name": "Rolling Mill and Other Metalworking Machinery Manufacturing "
-  },
-  {
-    "name": "Dimension Stone Mining and Quarrying "
-  },
-  {
-    "name": "Home Furnishing Merchant Wholesalers "
-  },
-  {
-    "name": "Food Retail"
-  },
-  {
-    "name": "Optical Goods Stores "
-  },
-  {
-    "name": "Cyclic Crude, Intermediate, and Gum and Wood Chemical Manufacturing "
-  },
-  {
-    "name": "Other Direct Insurance (except Life, Health, and Medical) Carriers "
-  },
-  {
-    "name": "Other Engine Equipment Manufacturing "
-  },
-  {
-    "name": "Motor Vehicle Metal Stamping"
-  },
-  {
-    "name": "Savings Institutions "
-  },
-  {
-    "name": "Advertising Agencies"
-  },
-  {
-    "name": "Flower, Nursery Stock, and Florists' Supplies Merchant Wholesalers "
-  },
-  {
-    "name": "Commercial Air, Rail, and Water Transportation Equipment Rental and Leasing "
-  },
-  {
-    "name": "Restaurants"
-  },
-  {
-    "name": "Metal Can Manufacturing "
-  },
-  {
-    "name": "Meat Processed from Carcasses "
-  },
-  {
-    "name": "Airlines"
-  },
-  {
-    "name": "Folding Paperboard Box Manufacturing "
-  },
-  {
-    "name": "All Other Miscellaneous Ambulatory Health Care Services "
-  },
-  {
-    "name": "Other Apparel Knitting Mills "
-  },
-  {
-    "name": "Investment Trusts/Mutual Funds"
-  },
-  {
-    "name": "Media Conglomerates"
-  },
-  {
-    "name": "New Single-Family Housing Construction (except For-Sale Builders) "
-  },
-  {
-    "name": "Industrial Services"
-  },
-  {
-    "name": "Postal Service"
-  },
-  {
-    "name": "Ball and Roller Bearing Manufacturing"
-  },
-  {
-    "name": "Sugarcane Farming"
-  },
-  {
-    "name": "Payroll Services "
-  },
-  {
-    "name": "Province/State"
-  },
-  {
-    "name": "Children's and Infants' Clothing Stores "
-  },
-  {
-    "name": "Alumina Refining and Primary Aluminum Production "
-  },
-  {
-    "name": "Nonferrous Metal Die-Casting Foundries "
-  },
-  {
-    "name": "Hardwood Veneer and Plywood Manufacturing "
-  },
-  {
-    "name": "Footwear Manufacturing "
-  },
-  {
-    "name": "Frozen Specialty Food Manufacturing "
-  },
-  {
-    "name": "Marketing Research and Public Opinion Polling"
-  },
-  {
-    "name": "All Other Miscellaneous Electrical Equipment and Component Manufacturing "
-  },
-  {
-    "name": "Radio and Television Broadcasting and Wireless Communications Equipment Manufacturing"
-  },
-  {
-    "name": "Miscellaneous Manufacturing"
-  },
-  {
-    "name": "Bus and Other Motor Vehicle Transit Systems "
-  },
-  {
-    "name": "Family Clothing Stores "
-  },
-  {
-    "name": "Framing Contractors "
-  },
-  {
-    "name": "Surveying and Mapping (except Geophysical) Services"
-  },
-  {
-    "name": "Residential Remodelers "
-  },
-  {
-    "name": "Real Estate and Rental and Leasing"
-  },
-  {
-    "name": "Fruit and Tree Nut Combination Farming "
-  },
-  {
-    "name": "Professional and Management Development Training "
-  },
-  {
-    "name": "Warm Air Heating and Air-Conditioning Equipment and Supplies Merchant Wholesalers "
-  },
-  {
-    "name": "Telecommunications Equipment"
-  },
-  {
-    "name": "Heating Equipment (except Warm Air Furnaces) Manufacturing "
-  },
-  {
-    "name": "Radio Networks "
-  },
-  {
-    "name": "Steel"
-  },
-  {
-    "name": "Construction Machinery Manufacturing"
-  },
-  {
-    "name": "Book Stores "
-  },
-  {
-    "name": "Geothermal Electric Power Generation "
-  },
-  {
-    "name": "Drywall and Insulation Contractors "
-  },
-  {
-    "name": "Wet Corn Milling "
-  },
-  {
-    "name": "Breakfast Cereal Manufacturing"
-  },
-  {
-    "name": "Prefabricated Metal Building and Component Manufacturing "
-  },
-  {
-    "name": "Plastics Pipe and Pipe Fitting Manufacturing "
-  },
-  {
-    "name": "Burial Casket Manufacturing "
-  },
-  {
-    "name": "Ophthalmic Goods Manufacturing "
-  },
-  {
-    "name": "Motorcycle, Bicycle, and Parts Manufacturing "
-  },
-  {
-    "name": "Collection Agencies"
-  },
-  {
-    "name": "Citrus (except Orange) Groves "
-  },
-  {
-    "name": "Medical, Dental, and Hospital Equipment and Supplies Merchant Wholesalers "
-  },
-  {
-    "name": "Offices of Lawyers"
-  },
-  {
-    "name": "Power Boiler and Heat Exchanger Manufacturing"
-  },
-  {
-    "name": "Securities Brokerage "
-  },
-  {
-    "name": "Retail Trade"
-  },
-  {
-    "name": "Soap and Other Detergent Manufacturing "
-  },
-  {
-    "name": "Switchgear and Switchboard Apparatus Manufacturing "
-  },
-  {
-    "name": "Land Subdivision "
-  },
-  {
-    "name": "Oil & Gas Production"
-  },
-  {
-    "name": "Pharmacies and Drug Stores "
-  },
-  {
-    "name": "Industrial Truck, Tractor, Trailer, and Stacker Machinery Manufacturing "
-  },
-  {
-    "name": "Gas Distributors"
-  },
-  {
-    "name": "Wood Kitchen Cabinet and Countertop Manufacturing"
-  },
-  {
-    "name": "Industrial Building Construction "
-  },
-  {
-    "name": "Support Activities for Oil and Gas Operations "
-  },
-  {
-    "name": "All Other Insurance Related Activities "
-  },
-  {
-    "name": "Biomass Electric Power Generation "
-  },
-  {
-    "name": "Industrial and Commercial Fan and Blower and Air Purification Equipment Manufacturing "
-  },
-  {
-    "name": "Other Aircraft Parts and Auxiliary Equipment Manufacturing "
-  },
-  {
-    "name": "Television Broadcasting"
-  },
-  {
-    "name": "Investigation Services "
-  },
-  {
-    "name": "Engineering Services"
-  },
-  {
-    "name": "Small Arms, Ordnance, and Ordnance Accessories Manufacturing "
-  },
-  {
-    "name": "Support Activities for Metal Mining "
-  },
-  {
-    "name": "Wholesale Trade"
-  },
-  {
-    "name": "Beverages: Non-Alcoholic"
-  },
-  {
-    "name": "Other Clothing Stores "
-  },
-  {
-    "name": "Audio and Video Equipment Manufacturing"
-  },
-  {
-    "name": "Other Grocery and Related Products Merchant Wholesalers "
-  },
-  {
-    "name": "All Other Transportation Equipment Manufacturing "
-  },
-  {
-    "name": "Potash, Soda, and Borate Mineral Mining "
-  },
-  {
-    "name": "Commercial Services"
-  },
-  {
-    "name": "Roasted Nuts and Peanut Butter Manufacturing "
-  },
-  {
-    "name": "Ice Cream and Frozen Dessert Manufacturing"
-  },
-  {
-    "name": "Other Automotive Mechanical and Electrical Repair and Maintenance "
-  },
-  {
-    "name": "Support Activities for Coal Mining "
-  },
-  {
-    "name": "Residential Property Managers "
-  },
-  {
-    "name": "Chemicals: Agricultural"
-  },
-  {
-    "name": "Hotels/Resorts/Cruiselines"
-  },
-  {
-    "name": "Miscellaneous"
-  },
-  {
-    "name": "Petroleum and Petroleum Products Merchant Wholesalers (except Bulk Stations and Terminals) "
-  },
-  {
-    "name": "Trucking"
-  },
-  {
-    "name": "Breweries"
-  },
-  {
-    "name": "Electronic Connector Manufacturing "
-  },
-  {
-    "name": "Freight Transportation Arrangement "
-  },
-  {
-    "name": "Wired Telecommunications Carriers "
-  },
-  {
-    "name": "Distribution Services"
-  },
-  {
-    "name": "Commercial, Industrial, and Institutional Electric Lighting Fixture Manufacturing "
-  },
-  {
-    "name": "Armored Car Services "
-  },
-  {
-    "name": "Paperboard Mills "
-  },
-  {
-    "name": "Medical Specialties"
-  },
-  {
-    "name": "Clay Building Material and Refractories Manufacturing "
-  },
-  {
-    "name": "Paper (except Newsprint) Mills "
-  },
-  {
-    "name": "Advertising/Marketing Services"
-  },
-  {
-    "name": "Savings Banks"
-  },
-  {
-    "name": "Pharmaceuticals: Generic"
-  },
-  {
-    "name": "Photographic Film, Paper, Plate, and Chemical Manufacturing "
-  },
-  {
-    "name": "Search, Detection, Navigation, Guidance, Aeronautical, and Nautical System and Instrument Manufacturing "
-  },
-  {
-    "name": "Printing Machinery and Equipment Manufacturing "
-  },
-  {
-    "name": "Homebuilding"
-  },
-  {
-    "name": "Consumer Durables"
-  },
-  {
-    "name": "Process Industries"
-  },
-  {
-    "name": "Other Crushed and Broken Stone Mining and Quarrying "
-  },
-  {
-    "name": "Food: Major Diversified"
-  },
-  {
-    "name": "Nitrogenous Fertilizer Manufacturing "
-  },
-  {
-    "name": "Ship Building and Repairing "
-  },
-  {
-    "name": "Tools & Hardware"
-  },
-  {
-    "name": "Semiconductors"
-  },
-  {
-    "name": "Painting and Wall Covering Contractors"
-  },
-  {
-    "name": "Meat and Meat Product Merchant Wholesalers "
-  },
-  {
-    "name": "Refrigeration Equipment and Supplies Merchant Wholesalers "
-  },
-  {
-    "name": "Fabricated Structural Metal Manufacturing "
-  },
-  {
-    "name": "Offices of Other Holding Companies "
-  },
-  {
-    "name": "Electric Bulk Power Transmission and Control "
-  },
-  {
-    "name": "Hosiery and Sock Mills"
-  },
-  {
-    "name": "Ready-Mix Concrete Manufacturing"
-  },
-  {
-    "name": "Tobacco"
-  },
-  {
-    "name": "Tour Operators"
-  },
-  {
-    "name": "Offices of Bank Holding Companies "
-  },
-  {
-    "name": "Site Preparation Contractors"
-  },
-  {
-    "name": "Arts, Entertainment, and Recreation"
-  },
-  {
-    "name": "Guided Missile and Space Vehicle Manufacturing "
-  },
-  {
-    "name": "Fluid Power Valve and Hose Fitting Manufacturing "
-  },
-  {
-    "name": "Conveyor and Conveying Equipment Manufacturing "
-  },
-  {
-    "name": "Automobile and Other Motor Vehicle Merchant Wholesalers "
-  },
-  {
-    "name": "Oil Refining/Marketing"
-  },
-  {
-    "name": "Information"
-  },
-  {
-    "name": "Tire Manufacturing (except Retreading) "
-  },
-  {
-    "name": "Lumber, Plywood, Millwork, and Wood Panel Merchant Wholesalers "
-  },
-  {
-    "name": "Other Airport Operations "
-  },
-  {
-    "name": "Security Systems Services (except Locksmiths) "
-  },
-  {
-    "name": "Copper, Nickel, Lead, and Zinc Mining"
-  },
-  {
-    "name": "Truck, Utility Trailer, and RV (Recreational Vehicle) Rental and Leasing "
-  },
-  {
-    "name": "Corrugated and Solid Fiber Box Manufacturing "
-  },
-  {
-    "name": "Leather and Hide Tanning and Finishing"
-  },
-  {
-    "name": "Satellite Telecommunications"
-  },
-  {
-    "name": "All Other Specialty Food Stores "
-  },
-  {
-    "name": "Plumbing and Heating Equipment and Supplies (Hydronics) Merchant Wholesalers "
-  },
-  {
-    "name": "All Other Miscellaneous General Purpose Machinery Manufacturing "
-  },
-  {
-    "name": "Pesticide and Other Agricultural Chemical Manufacturing"
-  },
-  {
-    "name": "Mixed Mode Transit Systems "
-  },
-  {
-    "name": "Electronic Components"
-  },
-  {
-    "name": "Bottled Water Manufacturing "
-  },
-  {
-    "name": "Nonscheduled Chartered Passenger Air Transportation "
-  },
-  {
-    "name": "Biotechnology"
-  },
-  {
-    "name": "Steel Wire Drawing "
-  },
-  {
-    "name": "Home Improvement Chains"
-  },
-  {
-    "name": "Bituminous Coal and Lignite Surface Mining "
-  },
-  {
-    "name": "Other Construction Material Merchant Wholesalers "
-  },
-  {
-    "name": "Cosmetology and Barber Schools "
-  },
-  {
-    "name": "All Other Miscellaneous Textile Product Mills "
-  },
-  {
-    "name": "Scheduled Passenger Air Transportation "
-  },
-  {
-    "name": "Computer Peripherals"
-  },
-  {
-    "name": "Investment Managers"
-  },
-  {
-    "name": "Natural Gas Distribution "
-  },
-  {
-    "name": "Phosphatic Fertilizer Manufacturing "
-  },
-  {
-    "name": "Motor Vehicle Brake System Manufacturing"
-  },
-  {
-    "name": "Other Accounting Services "
-  },
-  {
-    "name": "Publishing: Books/Magazines"
-  },
-  {
-    "name": "Trust, Fiduciary, and Custody Activities "
-  },
-  {
-    "name": "Other Snack Food Manufacturing "
-  },
-  {
-    "name": "Soybean and Other Oilseed Processing "
-  },
-  {
-    "name": "Other Heavy and Civil Engineering Construction "
-  },
-  {
-    "name": "Specialty Stores"
-  },
-  {
-    "name": "Crude Petroleum Extraction "
-  },
-  {
-    "name": "Other Aluminum Rolling, Drawing, and Extruding "
-  },
-  {
-    "name": "Air and Gas Compressor Manufacturing "
-  },
-  {
-    "name": "Plastics Bottle Manufacturing"
-  },
-  {
-    "name": "Major Telecommunications"
-  },
-  {
-    "name": "Finance/Rental/Leasing"
-  },
-  {
-    "name": "General Freight Trucking, Local "
-  },
-  {
-    "name": "Passenger Car Rental "
-  },
-  {
-    "name": "Newspaper Publishers "
-  },
-  {
-    "name": "Mortgage and Nonmortgage Loan Brokers "
-  },
-  {
-    "name": "Industrial Gas Manufacturing"
-  },
-  {
-    "name": "Public Administration"
-  },
-  {
-    "name": "Brick, Stone, and Related Construction Material Merchant Wholesalers "
-  },
-  {
-    "name": "Petroleum Lubricating Oil and Grease Manufacturing "
-  },
-  {
-    "name": "Inland Water Freight Transportation "
-  },
-  {
-    "name": "Medical Laboratories "
-  },
-  {
-    "name": "Lessors of Other Real Estate Property "
-  },
-  {
-    "name": "Other Business Service Centers (including Copy Shops) "
-  },
-  {
-    "name": "Copper Rolling, Drawing, Extruding, and Alloying"
-  },
-  {
-    "name": "All Other Metal Ore Mining "
-  },
-  {
-    "name": "Book Publishers "
-  },
-  {
-    "name": "Primary Battery Manufacturing "
-  },
-  {
-    "name": "Nonferrous Metal (except Aluminum) Smelting and Refining "
-  },
-  {
-    "name": "Financial Conglomerates"
-  },
-  {
-    "name": "Flooring Contractors"
-  },
-  {
-    "name": "Health Care and Social Assistance"
-  },
-  {
-    "name": "Government"
-  },
-  {
-    "name": "Parking Lots and Garages "
-  },
-  {
-    "name": "Supranational"
-  },
-  {
-    "name": "Consumer Services"
-  },
-  {
-    "name": "Taxi Service "
-  },
-  {
-    "name": "Sales Financing "
-  },
-  {
-    "name": "Information Technology Services"
-  },
-  {
-    "name": "Contract Drilling"
-  },
-  {
-    "name": "Hardware Merchant Wholesalers "
-  },
-  {
-    "name": "Forest Products"
-  },
-  {
-    "name": "Tax Preparation Services "
-  },
-  {
-    "name": "Knit Fabric Mills"
-  },
-  {
-    "name": "Steam and Air-Conditioning Supply "
-  },
-  {
-    "name": "Used Car Dealers "
-  },
-  {
-    "name": "Data Processing Services"
-  },
-  {
-    "name": "Hazardous Waste Treatment and Disposal "
-  },
-  {
-    "name": "Beer, Wine, and Liquor Stores "
-  },
-  {
-    "name": "Auto Parts: OEM"
-  },
-  {
-    "name": "Consumer Electronics and Appliances Rental"
-  },
-  {
-    "name": "Paper Bag and Coated and Treated Paper Manufacturing"
-  },
-  {
-    "name": "Printing and Writing Paper Merchant Wholesalers "
-  },
-  {
-    "name": "All Other Miscellaneous Crop Farming "
-  },
-  {
-    "name": "New Car Dealers "
-  },
-  {
-    "name": "Iron and Steel Mills and Ferroalloy Manufacturing "
-  },
-  {
-    "name": "Photographic and Photocopying Equipment Manufacturing "
-  },
-  {
-    "name": "Artificial and Synthetic Fibers and Filaments Manufacturing"
-  },
-  {
-    "name": "Other Management Consulting Services "
-  },
-  {
-    "name": "Other Measuring and Controlling Device Manufacturing "
-  },
-  {
-    "name": "Other Electronic Parts and Equipment Merchant Wholesalers "
-  },
-  {
-    "name": "Financial Transactions Processing, Reserve, and Clearinghouse Activities "
-  },
-  {
-    "name": "Hospital/Nursing Management"
-  },
-  {
-    "name": "Nonupholstered Wood Household Furniture Manufacturing "
-  },
-  {
-    "name": "Boat Dealers "
-  },
-  {
-    "name": "Deep Sea Passenger Transportation "
-  },
-  {
-    "name": "Fitness and Recreational Sports Centers "
-  },
-  {
-    "name": "Plastics Material and Resin Manufacturing "
-  },
-  {
-    "name": "Commodity Contracts Dealing "
-  },
-  {
-    "name": "Metal Heat Treating "
-  },
-  {
-    "name": "Landscaping Services"
-  },
-  {
-    "name": "Glass Container Manufacturing "
-  },
-  {
-    "name": "Consumer Non-Durables"
-  },
-  {
-    "name": "Commercial and Institutional Building Construction "
-  },
-  {
-    "name": "Electric Utilities"
-  },
-  {
-    "name": "Transportation"
-  },
-  {
-    "name": "Credit Bureaus"
-  },
-  {
-    "name": "Insurance Brokers/Services"
-  },
-  {
-    "name": "Sawmill, Woodworking, and Paper Machinery Manufacturing "
-  },
-  {
-    "name": "Trucks/Construction/Farm Machinery"
-  },
-  {
-    "name": "Cut Stone and Stone Product Manufacturing "
-  },
-  {
-    "name": "All Other Miscellaneous Fabricated Metal Product Manufacturing "
-  },
-  {
-    "name": "Household/Personal Care"
-  },
-  {
-    "name": "All Other Leather Good and Allied Product Manufacturing "
-  },
-  {
-    "name": "Other Building Material Dealers "
-  },
-  {
-    "name": "Finfish Fishing "
-  },
-  {
-    "name": "Utilities"
-  },
-  {
-    "name": "Construction Materials"
-  },
-  {
-    "name": "Property/Casualty Insurance"
-  },
-  {
-    "name": "Packaged Frozen Food Merchant Wholesalers "
-  },
-  {
-    "name": "Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)"
-  },
-  {
-    "name": "Apparel/Footwear"
-  },
-  {
-    "name": "Explosives Manufacturing"
-  },
-  {
-    "name": "Motion Picture and Video Production "
-  },
-  {
-    "name": "Other Industrial Machinery Manufacturing "
-  },
-  {
-    "name": "Other Animal Food Manufacturing "
-  },
-  {
-    "name": "Motor Vehicle Gasoline Engine and Engine Parts Manufacturing"
-  },
-  {
-    "name": "Instrument Manufacturing for Measuring and Testing Electricity and Electrical Signals "
-  },
-  {
-    "name": "Portfolio Management "
-  },
-  {
-    "name": "Other Gasoline Stations "
-  },
-  {
-    "name": "Roofing, Siding, and Insulation Material Merchant Wholesalers "
-  },
-  {
-    "name": "Other Communications Equipment Manufacturing"
-  },
-  {
-    "name": "Beet Sugar Manufacturing "
-  },
-  {
-    "name": "Concrete Block and Brick Manufacturing "
-  },
-  {
-    "name": "Other Metals/Minerals"
-  },
-  {
-    "name": "Medical/Nursing Services"
-  },
-  {
-    "name": "Hog and Pig Farming "
-  },
-  {
-    "name": "Iron and Steel Pipe and Tube Manufacturing from Purchased Steel"
-  },
-  {
-    "name": "Elementary and Secondary Schools "
-  },
-  {
-    "name": "Textile and Fabric Finishing Mills "
-  },
-  {
-    "name": "Textiles"
-  },
-  {
-    "name": "Coal"
-  },
-  {
-    "name": "All Other Miscellaneous Store Retailers (except Tobacco Stores) "
-  },
-  {
-    "name": "Industrial Valve Manufacturing "
-  },
-  {
-    "name": "Boat Building "
-  },
-  {
-    "name": "Data Processing, Hosting, and Related Services"
-  },
-  {
-    "name": "Plumbing, Heating, and Air-Conditioning Contractors "
-  },
-  {
-    "name": "New Housing For-Sale Builders "
-  },
-  {
-    "name": "Caterers"
-  },
-  {
-    "name": "Nonresidential Property Managers "
-  },
-  {
-    "name": "Sign Manufacturing"
-  },
-  {
-    "name": "Welding and Soldering Equipment Manufacturing "
-  },
-  {
-    "name": "Book, Periodical, and Newspaper Merchant Wholesalers "
-  },
-  {
-    "name": "Automotive Aftermarket"
-  },
-  {
-    "name": "Crushed and Broken Limestone Mining and Quarrying "
-  },
-  {
-    "name": "Secondary Smelting, Refining, and Alloying of Nonferrous Metal (except Copper and Aluminum) "
-  },
-  {
-    "name": "Specialty Telecommunications"
-  },
-  {
-    "name": "Vocational Rehabilitation Services "
-  },
-  {
-    "name": "Farm Machinery and Equipment Manufacturing "
-  },
-  {
-    "name": "Wholesale Trade Agents and Brokers "
-  },
-  {
-    "name": "Human Resources Consulting Services "
-  },
-  {
-    "name": "Women's Handbag and Purse Manufacturing "
-  },
-  {
-    "name": "Administrative Management and General Management Consulting Services "
-  },
-  {
-    "name": "Exterminating and Pest Control Services"
-  },
-  {
-    "name": "Solar Electric Power Generation "
-  },
-  {
-    "name": "Pipeline Transportation of Crude Oil"
-  },
-  {
-    "name": "Kidney Dialysis Centers "
-  },
-  {
-    "name": "Polystyrene Foam Product Manufacturing"
-  },
-  {
-    "name": "Aircraft Engine and Engine Parts Manufacturing "
-  },
-  {
-    "name": "Janitorial Services "
-  },
-  {
-    "name": "Wineries "
-  },
-  {
-    "name": "Advertising Material Distribution Services"
-  },
-  {
-    "name": "Bolt, Nut, Screw, Rivet, and Washer Manufacturing "
-  },
-  {
-    "name": "Other Metal Container Manufacturing "
-  },
-  {
-    "name": "Packaging Machinery Manufacturing "
-  },
-  {
-    "name": "Telephone Apparatus Manufacturing"
-  },
-  {
-    "name": "Health Services"
-  },
-  {
-    "name": "Gasket, Packing, and Sealing Device Manufacturing "
-  },
-  {
-    "name": "Convenience Stores "
-  },
-  {
-    "name": "Commercial Bakeries "
-  },
-  {
-    "name": "Offices of All Other Miscellaneous Health Practitioners "
-  },
-  {
-    "name": "Computer Communications"
-  },
-  {
-    "name": "Furniture Merchant Wholesalers "
-  },
-  {
-    "name": "Clothing Accessories Stores "
-  },
-  {
-    "name": "Plastics Packaging Film and Sheet (including Laminated) Manufacturing "
-  },
-  {
-    "name": "Automatic Environmental Control Manufacturing for Residential, Commercial, and Appliance Use "
-  },
-  {
-    "name": "Timber Tract Operations"
-  },
-  {
-    "name": "Employment Placement Agencies "
-  },
-  {
-    "name": "Reconstituted Wood Product Manufacturing "
-  },
-  {
-    "name": "Truck Trailer Manufacturing "
-  },
-  {
-    "name": "Chocolate and Confectionery Manufacturing from Cacao Beans "
-  },
-  {
-    "name": "General Warehousing and Storage "
-  },
-  {
-    "name": "Gasoline Stations with Convenience Stores "
-  },
-  {
-    "name": "Hotels (except Casino Hotels) and Motels "
-  },
-  {
-    "name": "Fresh Fruit and Vegetable Merchant Wholesalers "
-  },
-  {
-    "name": "Industrial Sand Mining "
-  },
-  {
-    "name": "Chemicals: Major Diversified"
-  },
-  {
-    "name": "Full-Service Restaurants "
-  },
-  {
-    "name": "Hydroelectric Power Generation "
-  },
-  {
-    "name": "All Other Basic Organic Chemical Manufacturing "
-  },
-  {
-    "name": "Gold Ore Mining "
-  },
-  {
-    "name": "Wholesale Distributors"
-  },
-  {
-    "name": "Chicken Egg Production "
-  },
-  {
-    "name": "Upholstered Household Furniture Manufacturing "
-  },
-  {
-    "name": "General Rental Centers"
-  },
-  {
-    "name": "Spice and Extract Manufacturing "
-  },
-  {
-    "name": "Machine Tool Manufacturing "
-  },
-  {
-    "name": "Food Product Machinery Manufacturing "
-  },
-  {
-    "name": "Lessors of Nonresidential Buildings (except Miniwarehouses) "
-  },
-  {
-    "name": "Health Technology"
-  },
-  {
-    "name": "Paint and Coating Manufacturing"
-  },
-  {
-    "name": "Coffee and Tea Manufacturing "
-  },
-  {
-    "name": "Major Banks"
-  },
-  {
-    "name": "Tile and Terrazzo Contractors"
-  },
-  {
-    "name": "All Other Telecommunications "
-  },
-  {
-    "name": "HMO Medical Centers "
-  },
-  {
-    "name": "All Other Health and Personal Care Stores "
-  },
-  {
-    "name": "Pharmaceuticals: Major"
-  },
-  {
-    "name": "Used Merchandise Stores "
-  },
-  {
-    "name": "Marine Shipping"
-  },
-  {
-    "name": "Furniture Stores "
-  },
-  {
-    "name": "Flat Glass Manufacturing "
-  },
-  {
-    "name": "Frozen Fruit, Juice, and Vegetable Manufacturing "
-  },
-  {
-    "name": "Blood and Organ Banks "
-  },
-  {
-    "name": "Casinos/Gaming"
-  },
-  {
-    "name": "Oilseed (except Soybean) Farming "
-  },
-  {
-    "name": "In-Vitro Diagnostic Substance Manufacturing "
-  },
-  {
-    "name": "Diet and Weight Reducing Centers "
-  },
-  {
-    "name": "Pulp & Paper"
-  },
-  {
-    "name": "Commercial Banking "
-  },
-  {
-    "name": "Credit Card Issuing "
-  },
-  {
-    "name": "Small Electrical Appliance Manufacturing"
-  },
-  {
-    "name": "Speed Changer, Industrial High-Speed Drive, and Gear Manufacturing "
-  },
-  {
-    "name": "Medical Distributors"
-  },
-  {
-    "name": "Art Dealers "
-  },
-  {
-    "name": "Wood Window and Door Manufacturing "
-  },
-  {
-    "name": "Recreational Vehicle Dealers "
-  },
-  {
-    "name": "Grain and Field Bean Merchant Wholesalers "
-  },
-  {
-    "name": "Food Service Contractors"
-  },
-  {
-    "name": "Dry Pasta, Dough, and Flour Mixes Manufacturing from Purchased Flour "
-  },
-  {
-    "name": "Electronics/Appliance Stores"
-  },
-  {
-    "name": "Investment Banking and Securities Dealing "
-  },
-  {
-    "name": "Other Commercial and Industrial Machinery and Equipment Rental and Leasing "
-  },
-  {
-    "name": "Casino Hotels"
-  },
-  {
-    "name": "Metal Service Centers and Other Metal Merchant Wholesalers "
-  },
-  {
-    "name": "Professional Organizations "
-  },
-  {
-    "name": "Shoe Stores "
-  },
-  {
-    "name": "Other Lighting Equipment Manufacturing "
-  },
-  {
-    "name": "Metal Tank (Heavy Gauge) Manufacturing"
-  },
-  {
-    "name": "Nuclear Electric Power Generation "
-  },
-  {
-    "name": "Line-Haul Railroads "
-  },
-  {
-    "name": "Other Millwork (including Flooring) "
-  },
-  {
-    "name": "Integrated Oil"
-  },
-  {
-    "name": "Rolled Steel Shape Manufacturing "
-  },
-  {
-    "name": "International Trade Financing "
-  },
-  {
-    "name": "Oil and Gas Field Machinery and Equipment Manufacturing "
-  },
-  {
-    "name": "Office Supplies (except Paper) Manufacturing"
-  },
-  {
-    "name": "Movies/Entertainment"
-  },
-  {
-    "name": "All Other Nondepository Credit Intermediation "
-  },
-  {
-    "name": "Women's Clothing Stores "
-  },
-  {
-    "name": "Cement Manufacturing"
-  },
-  {
-    "name": "Steel Foundries (except Investment) "
-  },
-  {
-    "name": "Other Activities Related to Credit Intermediation "
-  },
-  {
-    "name": "Cosmetics, Beauty Supplies, and Perfume Stores "
-  },
-  {
-    "name": "Motor Home Manufacturing "
-  },
-  {
-    "name": "Fiber, Yarn, and Thread Mills "
-  },
-  {
-    "name": "Manufacturing"
-  },
-  {
-    "name": "Pharmaceutical Preparation Manufacturing "
-  },
-  {
-    "name": "Sporting and Athletic Goods Manufacturing"
-  },
-  {
-    "name": "Business to Business Electronic Markets "
-  },
-  {
-    "name": "Couriers and Express Delivery Services"
-  },
-  {
-    "name": "Electronic Equipment/Instruments"
-  },
-  {
-    "name": "Biological Product (except Diagnostic) Manufacturing "
-  },
-  {
-    "name": "Other Gambling Industries "
-  },
-  {
-    "name": "Carpet and Rug Mills"
-  },
-  {
-    "name": "Dry, Condensed, and Evaporated Dairy Product Manufacturing "
-  },
-  {
-    "name": "Marine Cargo Handling"
-  },
-  {
-    "name": "Securities and Commodity Exchanges"
-  },
-  {
-    "name": "All Other Plastics Product Manufacturing "
-  },
-  {
-    "name": "Wireless Telecommunications"
-  },
-  {
-    "name": "Petrochemical Manufacturing"
-  },
-  {
-    "name": "Turbine and Turbine Generator Set Units Manufacturing "
-  },
-  {
-    "name": "Power, Distribution, and Specialty Transformer Manufacturing "
-  },
-  {
-    "name": "Synthetic Rubber Manufacturing "
-  },
-  {
-    "name": "Nursing Care Facilities (Skilled Nursing Facilities) "
-  },
-  {
-    "name": "General Freight Trucking, Long-Distance, Truckload "
-  },
-  {
-    "name": "Internet Retail"
-  },
-  {
-    "name": "All Other Grain Farming "
-  },
-  {
-    "name": "Metal Crown, Closure, and Other Metal Stamping (except Automotive) "
-  },
-  {
-    "name": "All Other Miscellaneous Schools and Instruction "
-  },
-  {
-    "name": "Saw Blade and Handtool Manufacturing "
-  },
-  {
-    "name": "Other Cut and Sew Apparel Manufacturing "
-  },
-  {
-    "name": "Soybean Farming"
-  },
-  {
-    "name": "Home Health Care Services"
-  },
-  {
-    "name": "Child Day Care Services "
-  },
-  {
-    "name": "Plate Work Manufacturing "
-  },
-  {
-    "name": "Deep Sea Freight Transportation "
-  },
-  {
-    "name": "Apprenticeship Training "
-  },
-  {
-    "name": "Pipeline Transportation of Refined Petroleum Products"
-  },
-  {
-    "name": "All Other Amusement and Recreation Industries "
-  },
-  {
-    "name": "Building Products"
-  },
-  {
-    "name": "Motor Vehicle Electrical and Electronic Equipment Manufacturing"
-  },
-  {
-    "name": "All Other Miscellaneous Wood Product Manufacturing "
-  },
-  {
-    "name": "Recreational Products"
-  },
-  {
-    "name": "Food: Meat/Fish/Dairy"
-  },
-  {
-    "name": "Fluid Milk Manufacturing "
-  },
-  {
-    "name": "Men's Clothing Stores "
-  },
-  {
-    "name": "Mattress Manufacturing"
-  },
-  {
-    "name": "Mechanical Power Transmission Equipment Manufacturing "
-  },
-  {
-    "name": "Uranium-Radium-Vanadium Ore Mining "
-  },
-  {
-    "name": "Construction"
-  },
-  {
-    "name": "Footwear Merchant Wholesalers "
-  },
-  {
-    "name": "Research and Development in the Social Sciences and Humanities "
-  },
-  {
-    "name": "Other Support Activities for Road Transportation "
-  },
-  {
-    "name": "Office Furniture (except Wood) Manufacturing "
-  },
-  {
-    "name": "Postharvest Crop Activities (except Cotton Ginning) "
-  },
-  {
-    "name": "Facilities Support Services"
-  },
-  {
-    "name": "Cable/Satellite TV"
-  },
-  {
-    "name": "Sewage Treatment Facilities "
-  },
-  {
-    "name": "Asphalt Shingle and Coating Materials Manufacturing "
-  },
-  {
-    "name": "Other Consumer Specialties"
-  },
-  {
-    "name": "Industrial Process Furnace and Oven Manufacturing "
-  },
-  {
-    "name": "Jewelry Stores "
-  },
-  {
-    "name": "Discount Stores"
-  },
-  {
-    "name": "Lessors of Residential Buildings and Dwellings "
-  },
-  {
-    "name": "Drilling Oil and Gas Wells"
-  },
-  {
-    "name": "Clay and Ceramic and Refractory Minerals Mining "
-  },
-  {
-    "name": "Alternative Power Generation"
-  },
-  {
-    "name": "Materials Recovery Facilities "
-  },
-  {
-    "name": "Life/Health Insurance"
-  },
-  {
-    "name": "All Other Nonmetallic Mineral Mining "
-  },
-  {
-    "name": "Finance and Insurance"
-  },
-  {
-    "name": "Automotive Glass Replacement Shops "
-  },
-  {
-    "name": "Wind Electric Power Generation "
-  },
-  {
-    "name": "Direct Mail Advertising"
-  },
-  {
-    "name": "Natural Gas Extraction "
-  },
-  {
-    "name": "Real Estate Investment Trusts"
-  },
-  {
-    "name": "Direct Title Insurance Carriers "
-  },
-  {
-    "name": "Glass Product Manufacturing Made of Purchased Glass "
-  },
-  {
-    "name": "Instruments and Related Products Manufacturing for Measuring, Displaying, and Controlling Industrial Process Variables "
-  },
-  {
-    "name": "Communications"
-  },
-  {
-    "name": "Rendering and Meat Byproduct Processing "
-  },
-  {
-    "name": "Aluminum"
-  },
-  {
-    "name": "Metal Window and Door Manufacturing "
-  },
-  {
-    "name": "Support Activities for Rail Transportation"
-  },
-  {
-    "name": "Fertilizer (Mixing Only) Manufacturing "
-  },
-  {
-    "name": "Support Activities for Animal Production"
-  },
-  {
-    "name": "Confectionery Manufacturing from Purchased Chocolate "
-  },
-  {
-    "name": "Unlaminated Plastics Profile Shape Manufacturing "
-  },
-  {
-    "name": "Railroads"
-  },
-  {
-    "name": "Motor Vehicles"
-  },
-  {
-    "name": "Other Electronic Component Manufacturing "
-  },
-  {
-    "name": "Agricultural Commodities/Milling"
-  },
-  {
-    "name": "Electronic Computer Manufacturing "
-  },
-  {
-    "name": "Miscellaneous Financial Investment Activities "
-  },
-  {
-    "name": "Apparel/Footwear Retail"
-  },
-  {
-    "name": "Office Supplies and Stationery Stores "
-  },
-  {
-    "name": "Other Paperboard Container Manufacturing "
-  },
-  {
-    "name": "Unlaminated Plastics Film and Sheet (except Packaging) Manufacturing "
-  },
-  {
-    "name": "Software and Other Prerecorded Compact Disc, Tape, and Record Reproducing "
-  },
-  {
-    "name": "Other Consumer Services"
-  },
-  {
-    "name": "Department Stores"
-  },
-  {
-    "name": "Computer Storage Device Manufacturing "
-  },
-  {
-    "name": "Seafood Product Preparation and Packaging"
-  },
-  {
-    "name": "Services to the Health Industry"
-  },
-  {
-    "name": "Other Computer Related Services"
-  },
-  {
-    "name": "Doll, Toy, and Game Manufacturing"
-  },
-  {
-    "name": "Computer Facilities Management Services "
-  },
-  {
-    "name": "Beauty Salons "
-  },
-  {
-    "name": "Regional Banks"
-  },
-  {
-    "name": "Mining, Quarrying, and Oil and Gas Extraction"
-  },
-  {
-    "name": "Musical Instrument Manufacturing "
-  },
-  {
-    "name": "Educational Support Services"
-  },
-  {
-    "name": "Direct Property and Casualty Insurance Carriers "
-  },
-  {
-    "name": "Copper, Nickel, Lead, and Zinc Mining "
-  },
-  {
-    "name": "Electrical Contractors and Other Wiring Installation Contractors"
-  },
-  {
-    "name": "Fire Protection "
-  },
-  {
-    "name": "Scenic and Sightseeing Transportation, Water"
-  },
-  {
-    "name": "Other Support Activities for Air Transportation"
-  },
-  {
-    "name": "All Other Support Services"
-  },
-  {
-    "name": "Finance"
-  },
-  {
-    "name": "Polish and Other Sanitation Good Manufacturing "
-  },
-  {
-    "name": "Wireless Telecommunications Carriers (except Satellite)"
-  },
-  {
-    "name": "Construction and Mining (except Oil Well) Machinery and Equipment Merchant Wholesalers "
-  },
-  {
-    "name": "Drugstore Chains"
-  },
-  {
-    "name": "Other Services Related to Advertising "
-  },
-  {
-    "name": "Other Activities Related to Real Estate "
-  },
-  {
-    "name": "Irradiation Apparatus Manufacturing "
-  },
-  {
-    "name": "Other Miscellaneous Durable Goods Merchant Wholesalers "
-  },
-  {
-    "name": "Home Furnishings"
-  },
-  {
-    "name": "Metal Coating, Engraving (except Jewelry and Silverware), and Allied Services to Manufacturers "
-  },
-  {
-    "name": "Silver Ore Mining "
-  },
-  {
-    "name": "Producer Manufacturing"
-  },
-  {
-    "name": "Coastal and Great Lakes Freight Transportation "
-  },
-  {
-    "name": "General Automotive Repair "
-  },
-  {
-    "name": "All Other Miscellaneous Chemical Product and Preparation Manufacturing "
-  },
-  {
-    "name": "Agriculture, Forestry, Fishing and Hunting"
-  },
-  {
-    "name": "Institutional Furniture Manufacturing "
-  },
-  {
-    "name": "Investment Advice "
-  },
-  {
-    "name": "Architectural Services"
-  },
-  {
-    "name": "Household Appliance Stores "
-  },
-  {
-    "name": "Carbon and Graphite Product Manufacturing "
-  },
-  {
-    "name": "Insurance Agencies and Brokerages "
-  },
-  {
-    "name": "Commercial Printing (except Screen and Books) "
-  },
-  {
-    "name": "Theater Companies and Dinner Theaters "
-  },
-  {
-    "name": "General Line Grocery Merchant Wholesalers "
-  },
-  {
-    "name": "Commercial Printing/Forms"
-  },
-  {
-    "name": "Heavy Duty Truck Manufacturing"
-  },
-  {
-    "name": "Department Stores "
-  },
-  {
-    "name": "Bare Printed Circuit Board Manufacturing  "
-  },
-  {
-    "name": "Custom Computer Programming Services "
-  },
-  {
-    "name": "Telecommunications Resellers "
-  },
-  {
-    "name": "Tobacco Manufacturing "
-  },
-  {
-    "name": "Motion Picture Theaters (except Drive-Ins) "
-  },
-  {
-    "name": "Electronic Technology"
-  },
-  {
-    "name": "Computer Systems Design Services "
-  },
-  {
-    "name": "Electronics Distributors"
-  },
-  {
-    "name": "Testing Laboratories"
-  },
-  {
-    "name": "Casinos (except Casino Hotels)"
-  },
-  {
-    "name": "Semiconductor and Related Device Manufacturing "
-  },
-  {
-    "name": "Food: Specialty/Candy"
-  },
-  {
-    "name": "Adhesive Manufacturing"
-  },
-  {
-    "name": "Pulp Mills "
-  },
-  {
-    "name": "Surgical Appliance and Supplies Manufacturing "
-  },
-  {
-    "name": "Trusts, Estates, and Agency Accounts "
-  },
-  {
-    "name": "Storage Battery Manufacturing "
-  },
-  {
-    "name": "Municipality"
-  },
-  {
-    "name": "Motion Picture and Video Distribution"
-  },
-  {
-    "name": "Farm and Garden Machinery and Equipment Merchant Wholesalers "
-  },
-  {
-    "name": "Petroleum Refineries"
-  },
-  {
-    "name": "Concrete Pipe Manufacturing "
-  },
-  {
-    "name": "Small Arms Ammunition Manufacturing "
-  },
-  {
-    "name": "Drugs and Druggists' Sundries Merchant Wholesalers "
-  },
-  {
-    "name": "Electric Power Distribution "
-  },
-  {
-    "name": "Computer Terminal and Other Computer Peripheral Equipment Manufacturing "
-  },
-  {
-    "name": "Flavoring Syrup and Concentrate Manufacturing"
-  },
-  {
-    "name": "Racetracks "
-  },
-  {
-    "name": "All Other Specialty Trade Contractors"
-  },
-  {
-    "name": "Blank Magnetic and Optical Recording Media Manufacturing "
-  },
-  {
-    "name": "Water Supply and Irrigation Systems "
-  },
-  {
-    "name": "Electromedical and Electrotherapeutic Apparatus Manufacturing "
-  },
-  {
-    "name": "Office Equipment/Supplies"
-  },
-  {
-    "name": "Educational Services"
-  }
-]
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Resources/phrases.json	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,25 @@
+[
+    {
+        "funny": [
+            "Tomorrow is often the busiest day of the week",
+            "They shorted my stock, I shortened their lives",
+            "The stock market is still les volatile than most of my romantic relationships",
+            "Dear diary, today the stock market did not crash",
+            "If you want to trade in derivates, god bless you",
+            "When the market crash, just take the absolute value",
+            "I was losing money before the stock market crashed",
+            "The Lazybear of Wall Street",
+            "Can't lose your savings if you have no savings",
+            "Stonks",
+            "So you dont buy more when a stock goes down?",
+            "Hey the stock market is up AAAA It's down",
+            "Top 3 richest people: Musk, Bezos, not you",
+            "Oh no... my stock did what?",
+            "Are you a Redditor?",
+            "No I don't know what happened",
+            "Hey, Do you want some quantitative easing?",
+            "Money printer go Brrr",
+            "You have two cows. The State takes both of them and gives you the milk"
+        ]
+    }
+]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Resources/popularCompanies.json	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,44 @@
+[
+    {
+        "symbol": "aapl"
+    },
+    {
+        "symbol": "msft"
+    },
+    {
+        "symbol": "amzn"
+    },
+    {
+        "symbol": "fb"
+    },
+    {
+        "symbol": "tsla"
+    },
+    {
+        "symbol": "jpm"
+    },
+    {
+        "symbol": "v"
+    },
+    {
+        "symbol": "jnj"
+    },
+    {
+        "symbol": "wmt"
+    },
+    {
+        "symbol": "ma"
+    },
+    {
+        "symbol": "bac"
+    },
+    {
+        "symbol": "pg"
+    },
+    {
+        "symbol": "pypl"
+    },
+    {
+        "symbol": "nke"
+    }
+]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Global Helpers/PriceView.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,33 @@
+//
+//  PriceView.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 3/4/21.
+//
+
+import SwiftUI
+
+struct PriceView: View {
+    var latestPrice: Double
+    var changePercent: Double
+    
+    var body: some View {
+        VStack {
+            Text("$\(latestPrice, specifier: "%.2f")")
+                .foregroundColor(changePercent < 0 ? .red: .green)
+                .fontWeight(.semibold)
+                .padding(.top)
+            
+            Text("\(changePercent*100, specifier: "%.2f")%")
+                .foregroundColor(changePercent < 0 ? .red: .green)
+                .fontWeight(.semibold)
+        }
+    }
+}
+
+
+struct PriceView_Previews: PreviewProvider {
+    static var previews: some View {
+        PriceView(latestPrice: 120.30, changePercent: 0.03)
+    }
+}
--- a/LazyBear/Views/Home/Helpers/TopStockItem.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Views/Home/Helpers/TopStockItem.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -8,8 +8,11 @@
 import SwiftUI
 
 struct TopStockItem: View {
-    var company: CompanyRowModel
-    var intradayPricesArray: IntradayPricesArray
+    var company: CompanyQuoteModel
+    @State private var intradayPrices = [IntradayPricesModel]()
+    
+    private let baseUrl = Bundle.main.infoDictionary?["IEX_URL"] as? String ?? "Empty url"
+    private let apiKey = Bundle.main.infoDictionary?["IEX_API"] as? String ?? "Empty key"
     
     var body: some View {
             RoundedRectangle(cornerRadius: 20)
@@ -29,35 +32,42 @@
                                 .opacity(0.6)
                                 .lineLimit(1)
                             
-                            Text("$\(company.latestPrice, specifier: "%.2f")")
-                                .foregroundColor(company.changePercent < 0 ? .red: .green)
-                                .fontWeight(.semibold)
-                                .padding(.top)
-                            
-                            Text("\(company.changePercent*100, specifier: "%.2f")%")
-                                .foregroundColor(company.changePercent < 0 ? .red: .green)
-                                .fontWeight(.semibold)
+                            PriceView(latestPrice: company.latestPrice, changePercent: company.changePercent)
                                 
                         }
                         .padding(.horizontal)
                         
                         Spacer()
                          
-                        let prices = intradayPricesArray.intradayPrices.compactMap { $0.open }
-                        // Compact Map will return an array without the nil values
-                        LineView(data: prices)
-                            .foregroundColor(company.changePercent < 0 ? .red: .green)
-                            .padding(.vertical)
-                            .clipped()
+                        let prices = intradayPrices.compactMap { $0.open }
+                        if prices.isEmpty {
+                            Text("No data available")
+                                .font(.caption)
+                                .opacity(0.6)
+                        } else {
+                            LineView(data: prices)
+                                .foregroundColor(company.changePercent < 0 ? .red: .green)
+                                .padding(.vertical)
+                                .clipped()
+                        }
                             
                     }
+                    ,alignment: .leading
                 )
+                .onAppear { requestIntradayPrices(company.symbol) }
+    }
+    
+    private func requestIntradayPrices(_ symbol: String) {
+        let url = "\(baseUrl)/stock/\(symbol)/intraday-prices?token=\(apiKey)"
+        genericRequest(url: url, model: [IntradayPricesModel].self) {
+            self.intradayPrices = $0
+        }
     }
 }
 
 struct TopStockItem_Previews: PreviewProvider {
     static var previews: some View {
-        TopStockItem(company: CompanyRowModel(symbol: "aapl", companyName: "apple inc", latestPrice: 120.30, changePercent: 0.03), intradayPricesArray: IntradayPricesArray(intradayPrices: [IntradayPricesModel(open: 120.00)]))
+        TopStockItem(company: CompanyQuoteModel(companyName: "Akumin Inc", symbol: "AKU", latestPrice: 120.30, changePercent: 0.03))
 
     }
 }
--- a/LazyBear/Views/Home/Helpers/TopStockRow.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Views/Home/Helpers/TopStockRow.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -8,9 +8,8 @@
 import SwiftUI
 
 struct TopStockRow: View {
-    var key: String
-    var list: [CompanyRowModel]
-    var intradayPricesDict: [String: IntradayPricesArray]
+    var listType: String
+    var list: [CompanyQuoteModel]
     
     var body: some View {
         VStack(alignment: .leading) {
@@ -22,11 +21,7 @@
             ScrollView(.horizontal, showsIndicators: false) {
                 HStack(spacing: 20) {
                     ForEach(list, id: \.self) { company in
-                        let symbol = company.symbol.uppercased()
-                        if let prices = intradayPricesDict[symbol] {
-                            TopStockItem(company: company, intradayPricesArray: prices)
-                        }
-                        
+                        TopStockItem(company: company)
                     }
                 }
                 .padding()
@@ -37,11 +32,11 @@
     }
     
     private func adaptTitle() -> String {
-        if key == "mostactive" {
+        if listType == "mostactive" {
             
             return "Most active"
         } else {
-            return key.capitalized
+            return listType.capitalized
         }
     }
 }
@@ -49,8 +44,6 @@
 
 struct TopStockRow_Previews: PreviewProvider {
     static var previews: some View {
-        let list = [CompanyRowModel(symbol: "aapl", companyName: "apple inc", latestPrice: 120.30, changePercent: 0.03)]
-        let intradayPricesArray = IntradayPricesArray(intradayPrices: [IntradayPricesModel(open: 120.00)])
-        TopStockRow(key: "Gainers", list: list, intradayPricesDict: ["AAPL": intradayPricesArray])
+        TopStockRow(listType: "gainers", list: [CompanyQuoteModel(companyName: "apple inc", symbol: "aapl", latestPrice: 120.30, changePercent: 0.03)])
     }
 }
--- a/LazyBear/Views/Home/HomeView.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Views/Home/HomeView.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -28,13 +28,15 @@
                         .listRowInsets(EdgeInsets())
                         
                     // Get keys of the dictionary list
-                    ForEach(homeData.list.keys.sorted(), id: \.self) { key in
-                        TopStockRow(key: key, list: homeData.list[key] ?? [CompanyRowModel](), intradayPricesDict: homeData.intradayPrices)
+                    ForEach(homeData.topLists.keys.sorted(), id: \.self) { listType in
+                        if let list = homeData.topLists[listType] {
+                            TopStockRow(listType: listType, list: list)
+                        }
                     }
                     .listRowInsets(EdgeInsets())
                 }
-                .onReceive(timer) {_ in homeData.request() }
-                .onDisappear { timer.upstream.connect().cancel() }
+                .onReceive(timer) { _ in homeData.request() }
+                .onDisappear { self.timer.upstream.connect().cancel() }  // Stop timer
                 .navigationTitle("\(dueDate, formatter: Self.taskDateFormat)")
                 .navigationBarTitleDisplayMode(.inline)
                 .navigationViewStyle(StackNavigationViewStyle())
@@ -47,11 +49,15 @@
                 }
             }
             .sheet(isPresented: $showTradingDates) {
-                TradingDates(stringDates: homeData.holidayDates)
+                TradingDates()
             }
         } else {
             ProgressView()
-                .onAppear { homeData.request() }
+                .onAppear {
+                    homeData.request()
+                    self.timer = Timer.publish(every: 10, on: .main, in: .common).autoconnect()  // Restart timer
+                }
+            
         }
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Home/Networking/CompanyQuoteModel.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,15 @@
+//
+//  CompanyQuoteModel.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 30/3/21.
+//
+
+import SwiftUI
+
+struct CompanyQuoteModel: Codable, Hashable {
+    var companyName: String
+    var symbol: String
+    var latestPrice: Double
+    var changePercent: Double
+}
--- a/LazyBear/Views/Home/Networking/HomeData.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Views/Home/Networking/HomeData.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -10,87 +10,42 @@
 class HomeData: ObservableObject {
     @Published var showView = false
     @Published var sectorPerformance = [SectorPerformanceModel]()
-    @Published var list = ["mostactive": [CompanyRowModel](), "gainers": [CompanyRowModel](), "losers": [CompanyRowModel]()]
-    @Published var intradayPrices = [String(): IntradayPricesArray(intradayPrices: [IntradayPricesModel(open: Double())])]
-    @Published var holidayDates = [TradingDatesModel]()
+    @Published var topLists = [
+        "gainers": [CompanyQuoteModel](),
+        "losers": [CompanyQuoteModel](),
+        "mostactive": [CompanyQuoteModel]()
+    ]
     
     private let baseUrl = Bundle.main.infoDictionary?["IEX_URL"] as? String ?? "Empty url"
     private let apiKey = Bundle.main.infoDictionary?["IEX_API"] as? String ?? "Empty key"
     
-    // Call this function to make the request
+    
     func request() {
-        let dispatchGroup = DispatchGroup()  // Start dispatch group
+        let dispatchGroup = DispatchGroup()
         var url = String()
         
-//      1. SECTOR PERFORMANCE REQUEST
+        // 1. REQUEST SECTOR PERFORMANCE
         url = "\(baseUrl)/stock/market/sector-performance?token=\(apiKey)"
-        print("Entering group: request Sector Performance")
-        dispatchGroup.enter()  // Enter group
+        dispatchGroup.enter()
         
-        // API Request
         genericRequest(url: url, model: [SectorPerformanceModel].self) {
             self.sectorPerformance = $0
-            print("Leaving group: request Sector Performance")
-            dispatchGroup.leave()  // Leave group
+            dispatchGroup.leave()
         }
         
-//      2. LISTS REQUEST
-        var symbols = [String]()  // Know what symbols are in each list
-        for key in self.list.keys {
-            url = "\(baseUrl)/stock/market/collection/list?collectionName=\(key)&token=\(apiKey)"
-            print("Entering group: request list \(key)")
-            dispatchGroup.enter()  // Enter group
+        // 2. STOCK LISTS
+        for listType in topLists.keys {
+            url = "\(baseUrl)/stock/market/list/\(listType)?token=\(apiKey)"
+            dispatchGroup.enter()
             
-            // API Request
-            genericRequest(url: url, model: [CompanyRowModel].self) {
-                self.list[key] = $0
-                print("Leaving group: request list \(key)")
+            genericRequest(url: url, model: [CompanyQuoteModel].self) {
+                self.topLists[listType] = $0
                 dispatchGroup.leave()
-                
-                // Append symbols requested to a list
-                if let companies = self.list[key] {  // Unwrap value
-                    for company in companies {  // Iterate inside the list through the companies
-                        symbols.append(company.symbol)
-                    }
-                }
-                
-                // Now that I have all the symbols I can request the intraday prices and save it to the @Published var
-                // First I have to concatenate the string to make the batch request
-                url = "\(self.baseUrl)/stock/market/batch?symbols="
-                for symbol in symbols {  // Concatenate symbol to the first part of the url
-                    if symbols.firstIndex(of: symbol) == 0 {
-                        url += symbol
-                    } else {
-                        url += ",\(symbol)"
-                   }
-                }
             }
         }
         
-//      3. REQUEST TRADING/HOLIDAY DAYS
-        url = "\(baseUrl)/ref-data/us/dates/holiday/next/30?token=\(apiKey)"
-        print("Entering group: request Trading/holiday Days")
-        dispatchGroup.enter()  // Enter group
-        genericRequest(url: url, model: [TradingDatesModel].self) {
-            self.holidayDates = $0
-            
-            print("Leaving group: request Trading/holiday Days")
-            dispatchGroup.leave()
-        
-       }
-        
-        // This will run after the ForLoop and if it was successful
         dispatchGroup.notify(queue: .main) {
-            
-//           4. INTRADAY PRICES REQUEST
-            // Once the previous request are made, I can append the final part of the url and make the request
-            url = "\(url)&types=intraday-prices&token=\(self.apiKey)"
-            genericRequest(url: url, model: [String: IntradayPricesArray].self) {
-                self.intradayPrices = $0
-                
-                print("Request done successfully -> showing view")
-                self.showView = true
-            }
+            self.showView = true
         }
     }
 }
--- a/LazyBear/Views/Home/Networking/HomeModels.swift	Thu Apr 01 20:55:09 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-//
-//  SectorPerformanceModel.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 30/3/21.
-//
-
-import SwiftUI
-
-struct SectorPerformanceModel: Codable, Hashable {
-    var name: String
-    var performance: Double
-    var lastUpdated: Int
-}
-
-
-struct CompanyRowModel: Codable, Hashable {
-    var symbol: String
-    var companyName: String
-    var latestPrice: Double
-    var changePercent: Double
-}
-
-
-// Model prepared with batch
-struct IntradayPricesArray: Codable {
-    var intradayPrices: [IntradayPricesModel]
-
-    // Change key name
-    private enum CodingKeys : String, CodingKey {
-           case intradayPrices = "intraday-prices"
-       }
-}
-
-struct IntradayPricesModel: Codable {
-    var open: Double?
-}
-
-
-struct TradingDatesModel: Codable {
-    var date: String
-
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Home/Networking/IntradayPricesModel.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,12 @@
+//
+//  IntradayPricesModel.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 3/4/21.
+//
+
+import SwiftUI
+
+struct IntradayPricesModel: Codable {
+    var open: Double?
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Home/Networking/SectorPerformanceModel.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,14 @@
+//
+//  SectorPerformanceModel.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 3/4/21.
+//
+
+import SwiftUI
+
+struct SectorPerformanceModel: Codable, Hashable {
+    var name: String
+    var performance: Double
+    var lastUpdated: Int
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Home/Networking/TradingDatesModel.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,13 @@
+//
+//  TradingDatesModel.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 3/4/21.
+//
+
+import SwiftUI
+
+struct TradingDatesModel: Codable {
+    var date: String
+
+}
--- a/LazyBear/Views/Home/TradingDates.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Views/Home/TradingDates.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -7,8 +7,16 @@
 
 import SwiftUI
 
+enum DateType {
+    case holidays, trading
+}
+
 struct TradingDates: View {
-    var stringDates: [TradingDatesModel]
+    @State private var dates = [TradingDatesModel]()
+    @State private var showingView = false
+    
+    private let baseUrl = Bundle.main.infoDictionary?["IEX_URL"] as? String ?? "Empty url"
+    private let apiKey = Bundle.main.infoDictionary?["IEX_API"] as? String ?? "Empty key"
     
     var body: some View {
         NavigationView {
@@ -20,14 +28,32 @@
                 }
                 .padding()
             }
+            .onAppear { requestDates(.holidays) }
             .navigationTitle("Holiday dates")
+            .navigationBarTitleDisplayMode(.inline)
         }
     }
     
+    private func requestDates(_ dateType: DateType) {
+        switch dateType {
+        case .trading:
+            let tradingUrl = "\(baseUrl)/ref-data/us/dates/trade/next/10?token=\(apiKey)"
+            genericRequest(url: tradingUrl, model: [TradingDatesModel].self) {
+                self.dates = $0
+                self.showingView = true
+            }
+        case.holidays:
+            let holidaysUrl = "\(baseUrl)/ref-data/us/dates/holiday/next/10?token=\(apiKey)"
+            genericRequest(url: holidaysUrl, model: [TradingDatesModel].self) {
+                self.dates = $0
+                self.showingView = true
+            }
+        }
+    }
     
     private func getArrayOfDates() -> [Date] {
         // Get array of the string dates
-        let stringDates = self.stringDates.map { $0.date }
+        let stringDates = self.dates.map { $0.date }
         
         // Convert string to date
         let dateFormatter = DateFormatter()
@@ -46,6 +72,6 @@
 struct TradingDate_Previews: PreviewProvider {
     static var previews: some View {
         // Format is YYY-MM-DD
-        TradingDates(stringDates: [TradingDatesModel(date: "2020-04-01")])
+        TradingDates()
     }
 }
--- a/LazyBear/Views/Search/Helpers/ContainerHelper.swift	Thu Apr 01 20:55:09 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-//
-//  ContainerHelper.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 1/4/21.
-//
-
-import SwiftUI
-
-struct ContainerHelper: View {
-    var tag: String
-    
-    var body: some View {
-        RoundedRectangle(cornerRadius: 25.0)
-            .foregroundColor(.white)
-            .shadow(color: Color.black.opacity(0.1), radius: 10)
-            .padding()
-            .overlay(
-                Text(tag)
-            )
-    }
-}
-
-struct ContainerHelper_Previews: PreviewProvider {
-    static var previews: some View {
-        ContainerHelper(tag: "Airlines")
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Search/Helpers/PopularCompanyHelper.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,41 @@
+//
+//  PopularCompanyHelper.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 1/4/21.
+//
+
+import SwiftUI
+
+struct PopularCompanyHelper: View {
+    var company: CompanyQuoteModel
+    
+    var body: some View {
+        RoundedRectangle(cornerRadius: 20)
+            .foregroundColor(Color(.secondarySystemBackground))
+            .frame(height: 100)
+            .overlay(
+                HStack {
+                     Rectangle()
+                         .frame(width: 15)
+                         .foregroundColor(Color("default"))
+                    
+                    VStack {
+                        Text(company.companyName)
+                        Text(company.symbol)
+                    }
+                    
+                    Spacer()
+                    
+                    PriceView(latestPrice: company.latestPrice, changePercent: company.changePercent)
+                }
+                .clipShape(RoundedRectangle(cornerRadius: 20))
+            )
+    }
+}
+
+struct PopularCompanyHelper_Previews: PreviewProvider {
+    static var previews: some View {
+        PopularCompanyHelper(company: CompanyQuoteModel(companyName: "apple inc", symbol: "aapl", latestPrice: 120.30, changePercent: 0.03))
+    }
+}
--- a/LazyBear/Views/Search/Helpers/ScrollViewHelper.swift	Thu Apr 01 20:55:09 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-//
-//  ScrollViewHelper.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 1/4/21.
-//
-
-import SwiftUI
-
-struct ScrollViewHelper: View {
-    var body: some View {
-        ScrollView {
-            LazyVStack(spacing: 10) {
-                let tags = companyTags.shuffled().prefix(10)
-                ForEach(tags, id: \.self) { tag in
-                    ContainerHelper(tag: tag.name)
-                        .frame(height: 350)
-                }
-            }
-        }
-    }
-}
-
-struct ScrollViewHelper_Previews: PreviewProvider {
-    static var previews: some View {
-        ScrollViewHelper()
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Search/Networking/BatchCompanyQuoteModel.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,12 @@
+//
+//  BatchCompanyQuoteModel.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 3/4/21.
+//
+
+import SwiftUI
+
+struct BatchCompanyQuoteModel: Codable {
+        var quote: CompanyQuoteModel
+}
--- a/LazyBear/Views/Search/Networking/CompanyTagsModel.swift	Thu Apr 01 20:55:09 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-//
-//  CompanyTagsModel.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 1/4/21.
-//
-
-import SwiftUI
-
-struct CompanyTagsModel: Codable, Hashable {
-    var name: String
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Search/Networking/PopularCompanyModel.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,12 @@
+//
+//  PopularCompanyModel.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 3/4/21.
+//
+
+import SwiftUI
+
+struct PopularCompanyModel: Codable, Hashable {
+    var symbol: String
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LazyBear/Views/Search/Networking/SearchData.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -0,0 +1,41 @@
+//
+//  SearchData.swift
+//  LazyBear
+//
+//  Created by Dennis Concepción Martín on 3/4/21.
+//
+
+import SwiftUI
+
+class SearchData: ObservableObject {
+    @Published var companies = [CompanyQuoteModel]()
+    
+    private let baseUrl = Bundle.main.infoDictionary?["IEX_URL"] as? String ?? "Empty url"
+    private let apiKey = Bundle.main.infoDictionary?["IEX_API"] as? String ?? "Empty key"
+    private let symbols = popularCompanies.map { $0.symbol }
+    
+    func request() {
+        var url = "\(baseUrl)/stock/market/batch?symbols="
+        
+        // Contruct url appending symbols
+        for symbol in self.symbols {
+            let index = self.symbols.firstIndex(of: symbol)
+            if index == 0 {
+                url += symbol
+            } else {
+                url += ",\(symbol)"
+            }
+        }
+        
+        // Append final part of the url
+        url += "&types=quote&token=\(apiKey)"
+
+        genericRequest(url: url, model: [String:BatchCompanyQuoteModel].self) { dict in
+            for key in dict.keys {
+                if let company = dict[key] {
+                    self.companies.append(company.quote)
+                }
+            }
+        }
+    }
+}
--- a/LazyBear/Views/Search/Networking/UnplashPhotoModel.swift	Thu Apr 01 20:55:09 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-//
-//  UnplashPhotoModel.swift
-//  LazyBear
-//
-//  Created by Dennis Concepción Martín on 1/4/21.
-//
-
-import SwiftUI
-
-struct UnplashPhotoResponse: Codable {
-    var results: [UnplashPhotoModel]
-}
-struct UnplashPhotoModel: Codable {
-    var urls: UnplashPhotoUrls
-    var user: String
-}
-
-struct UnplashPhotoUrls: Codable {
-    var small: String
-}
-
-struct UnplashPhotoUser: Codable {
-    var username: String
-    var name: String
-    var firstName: String
-    var lastName: String
-    
-    // Change key name
-    private enum CodingKeys : String, CodingKey {
-        case username, name
-        case firstName = "first_name"
-        case lastName = "last_name"
-    }
-}
-// URL-> https://api.unsplash.com/search/photos?page=1&per_page=1&order_by=popular&query=office&client_id=FGNeBoqvo838iKn05re3kxbTAlpnc1fBdsyts3n6uyo
--- a/LazyBear/Views/Search/SearchView.swift	Thu Apr 01 20:55:09 2021 +0200
+++ b/LazyBear/Views/Search/SearchView.swift	Sat Apr 03 13:02:40 2021 +0200
@@ -9,13 +9,21 @@
 import SwiftlySearch
 
 struct SearchView: View {
+    @ObservedObject var searchData = SearchData()
     @State private var searchedText = String()
     
     var body: some View {
         NavigationView {
             VStack {
-                ScrollViewHelper()
+                ScrollView {
+                    VStack(spacing: 20) {
+                        ForEach(searchData.companies, id: \.self) { company in
+                            PopularCompanyHelper(company: company)
+                        }
+                    }
+                }
             }
+            .onAppear { searchData.request() }
             .navigationTitle("Search")
             .navigationBarTitleDisplayMode(.inline)
             .navigationBarSearch($searchedText)