diff --git a/app_dev.py b/app.py
similarity index 100%
rename from app_dev.py
rename to app.py
diff --git a/data/list_of_authors.md b/data/list_of_authors.md
new file mode 100644
index 0000000000000000000000000000000000000000..e1c741ea043e9de4eadc0a13af00d8d3fdee5747
--- /dev/null
+++ b/data/list_of_authors.md
@@ -0,0 +1,35 @@
+| 1997    | Eric Steven Raymond | The Cathedral and the Bazaar |3930|Open|[www.unterstein.net](http://www.unterstein.net/su/docs/CathBaz.pdf)|
+|2001|D.M. Nichols, K.Thomson and S.A.Yeates|Usability and open-source software development|42|Paid|[acm.org](https://dl.acm.org/citation.cfm?id=2331822)|
+|2002| N.Frishberg,A.M. Dirks, C.Benson, S. Nickell, S. Smith|Getting to know you: open source development meets usability|44|Open|[researchgate.net](https://www.researchgate.net/publication/221514637_Getting_to_know_you_open_source_development_meets_usability)|
+|2002|Peter Trudelle|Shall We Dance? Ten Lessons Learned from Netscape's Flirtation with Open Source UI Development|16|Open|[iol.ie](http://www.iol.ie/~calum/chi2002/peter_trudelle.txt)|
+|2003|D.M. Nichols, M.B Twidale|The Usability of Open Source Software|249|Open|[firstmonday.org](http://firstmonday.org/article/view/1018/939)|
+|2004|C Benson, M Muller-Prove, J Mzourek|Professional Usability in Open Source Projects: GNOME, OpenOffice.org, NetBeans|78|Paid|[acm.org](https://dl.acm.org/citation.cfm?id=985991&dl=ACM&coll=DL&CFID=589697071&CFTOKEN=94517988)|
+|2005|E. Golden, B. E. John, L. Bass|The Value of a Usability-Supporting Architectural Pattern in Software Architecture Design: A Controlled Experiment|45|Open|[cmu.edu](https://www.cs.cmu.edu/~bej/usa/publications/GoldenJohnBassICSE2005.pdf)|
+|2006|M. S. Andreasen, H.V. Nielsen, S.O. Schrøder, J. Stage|Usability In Open Source Software Development: Opinions And Practice|44|Open|[itc.ktu.lt](http://www.itc.ktu.lt/index.php/ITC/article/view/11776/6440)|
+|2006|Reitmayr, E., Balazs, B., Mühlig, J.|Integrating Usability with Open Source Software Development: Case Studies from the Initiative OpenUsability|5|Open|[psu.edu](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.108.6223&rep=rep1&type=pdf#page=71)|
+|2007|Mark Aberdour|Achieving Quality in Open Source Software|141|Paid|[acm.org](https://dl.acm.org/citation.cfm?id=1262594)|
+|2007|N. Viorres, P. Xenofon, M. Stavrakis, E. Vlachogiannis, P. Koutsabasis, J. Darzentas|Major HCI Challenges for Open Source Software Adoption and Development|24|Open|[researchgate.net](https://www.researchgate.net/publication/225140256_Major_HCI_Challenges_for_Open_Source_Software_Adoption_and_Development)|
+|2007|M. Bødker, L. Nielsen, R.N. Orngreen|Enabling User Centered Design Processes in Open Source Communities|23|Open|[researchgate.net](https://www.researchgate.net/publication/221096187_Enabling_User_Centered_Design_Processes_in_Open_Source_Communities)|
+|2007|G.Çetin, D.Verzulli, S.Frings|An Analysis of Involvement of HCI Experts in Distributed Software Development: Practical Issues|31|Open|[researchgate.net](https://www.researchgate.net/publication/221097945_An_Analysis_of_Involvement_of_HCI_Experts_in_Distributed_Software_Development_Practical_Issues)|
+|2008|Matthew Paul Thomas|Why Free Software has poor usability, and how to improve it|7|Open|[web.archive.org](https://web.archive.org/web/20090625141639/http://mpt.net.nz/archive/2008/08/01/free-software-usability)|
+|2009|H.Hedberg and N.Iivari|Integrating HCI Specialists into Open Source Software Development Projects|14|Open|[springer.com](http://link.springer.com/chapter/10.1007%2F978-3-642-02032-2_22#page-1)|
+|2009|Paula M. Bach|Supporting the user experience in free/libre/open source software development|4|Open|[psu.edu](https://etda.libraries.psu.edu/paper/9880/5184)|
+|2009|Paula M. Bach, R.DeLine, and J.M. Carroll|Designers wanted: participation and the user experience in open source software development|32|Paid|[acm.org](https://dl.acm.org/citation.cfm?id=1518852&dl=ACM&coll=DL&CFID=589697071&CFTOKEN=94517988)|
+|2009|Paula M. Bach and John M. Carroll|FLOSS UX Design:An Analysis of User Experience Design in Firefox and OpenOffice.org|13|Open|[http://flosshub.org/](http://flosshub.org/system/files/Floss%20UX%20Desing.pdf)|
+|2010|Paula M. Bach, M.Twidale|Social Participation in Open Source: What it Means for Designers|8|Paid|[acm.org](https://dl.acm.org/citation.cfm?doid=1744161.1744177)|
+|2010|A.Raza and L.F.Capretz|Contributors' preference in open source software usability: An empirical study|6|Open|[Cornell Uni Library](http://arxiv.org/pdf/1507.06882.pdf)|
+|2012|A.Raza and L.F.Capretz|Do open source software developers listen to their users|4|Open|[researchgate.net](https://www.researchgate.net/publication/287955808_Do_open_source_software_developers_listen_to_their_users)|
+|2013|M.Rajanen and N.Iivary|Open Source and Human Computer Interaction Philosophies in Open Source Projects: Incompatible or Co-Existent?|4|Open|[oulu.fi](http://cc.oulu.fi/~mrajanen/MindTrek2013_rajanen_iivari.pdf)|
+|2013|Benjamin M. Hill and Andrés Monroy-Hernández|The cost of collaboration for code and art: evidence from a remixing community|14|Open|[arxiv.org](https://arxiv.org/pdf/1507.01297.pdf)|
+|2015|M.Rajanen, N.Iivari and A.Lanamäki|Non-response, Social Exclusion, and False Acceptance: Gatekeeping Tactics and Usability Work in Free-Libre Open Source Software Development|3|Open|[oulu.fi](http://cc.oulu.fi/~mrajanen/INTERACT2015_rajanen_iivari_lanamaki.pdf)|
+|2015|M.Rajanen and N.Iivary| Examining Usability Work and Culture in FOSS|1|Open|[oulu.fi](http://cc.oulu.fi/~mrajanen/OSS2015_rajanen_iivari.pdf)|
+|2015|Mikko Rajanen & Netta Iivari|Power, Empowerment and Open Source Usability|4|Paid|[dl.acm.org](http://dl.acm.org/citation.cfm?id=2702441)|
+|2015|Michelle W. Purcell|Technology-In-Practice and its Influence on User Involvement in OSS 2.0 Projects|0|Open|[ideals.illinois.edu](https://www.ideals.illinois.edu/bitstream/handle/2142/73751/450_ready.pdf?sequence=2&isAllowed=y)|
+
+## Research
+
+
+| Year      | Author         | Title  |Type |Acceess  |Link |
+| :----: |:--------|:--------------------------------|:-----:|:-----|:----|
+| 2011   | Jan-Christoph Borchardt| Usability in Free Software|Thesis|Open|[jancborchardt.net](http://jancborchardt.net/usability-in-free-software)|
+|2017|Jan Dittrich|A beginner's guide to finding user needs |Book|Open|[jdittrich.github.io](https://jdittrich.github.io/userNeedResearchBook/)|
diff --git a/data/trainingDats.p b/data/trainingDats.p
new file mode 100644
index 0000000000000000000000000000000000000000..bcfafe243556aae9ac9cfa57a72ab8931457201b
Binary files /dev/null and b/data/trainingDats.p differ
diff --git a/discoverbloat.py b/discoverbloat.py
index aa35c7a4b44e3681eec46d5e40ff6b9781f47f0c..ad9cfe024969cdbfc74cbaa52119ad273aacfa6a 100644
--- a/discoverbloat.py
+++ b/discoverbloat.py
@@ -30,9 +30,16 @@ import click
 from typing import List, Any
 
 from science_access.t_analysis import not_want_list
-not_want_list.extend(["link","librarian","issue","abstract","science","cookie","publication"])
 
-from science_access.online_app_backend import call_from_front_end,ar_manipulation,	update_web_form_full_text
+not_want_list.extend(
+    ["link", "librarian", "issue", "abstract", "science", "cookie", "publication"]
+)
+
+from science_access.online_app_backend import (
+    call_from_front_end,
+    ar_manipulation,
+    update_web_form_full_text,
+)
 
 
 from science_access.enter_author_name import (
@@ -69,7 +76,7 @@ rd_labels = rd_df["Origin"]
 rd_level = rd_df["Reading_Level"]
 max = np.max(rd_df["Reading_Level"])
 
-#rd_df = rd_df.loc[sample(list(rd_df.index), 999)]
+# rd_df = rd_df.loc[sample(list(rd_df.index), 999)]
 rd_df = rd_df.loc[sample(list(rd_df.index), 999)]
 rd_df = rd_df[(rd_df["Reading_Level"] > 0)]
 
@@ -79,8 +86,8 @@ with open("data/trainingDats.p", "rb") as f:
 biochem_labels = art_df["Origin"]
 bio_chem_level = art_df["Reading_Level"]
 
-#@st.cache(suppress_st_warning=True)
-def check_cache(author_name: str,verbose=0):  # ->Union[]
+# @st.cache(suppress_st_warning=True)
+def check_cache(author_name: str, verbose=0):  # ->Union[]
     with shelve.open("fast_graphs_splash.p") as db:
         flag = author_name in db
         if not flag:
@@ -92,7 +99,7 @@ def check_cache(author_name: str,verbose=0):  # ->Union[]
             # caching wont scale on heroku.
             # need TinyDb on Amazon
             ##
-            if len(db.keys())<11:
+            if len(db.keys()) < 11:
                 db[author_name] = {
                     "ar": ar,
                     "scraped_labels": scraped_labels,
@@ -112,23 +119,27 @@ def check_cache(author_name: str,verbose=0):  # ->Union[]
 
             scraped_labels = temp["scraped_labels"]
 
-        #experimental = [
+        # experimental = [
         #    np.mean([a["standard_len"], a["ndc"]])
         #    for a in ar
         #    if "standard_len" in a.keys()
-        #]
+        # ]
     return ar, author_score, scraped_labels
 
-def show_hardest_passage(ar:List=[])->str:
+
+def show_hardest_passage(ar: List = []) -> str:
     largest = 0
     li = 0
-    for i,a in enumerate(ar):
-        if a["standard"]>largest:
+    for i, a in enumerate(ar):
+        if a["standard"] > largest:
             largest = a["standard"]
-            li=i
+            li = i
     if "hard_snippet" in ar[i].keys() and ar[i]["hard_snippet"] is not None:
         st.markdown("A hard to read passage from the authors work.")
-        if str("can log in with their society credentials") not in ar[i]["hard_snippet"]:
+        if (
+            str("can log in with their society credentials")
+            not in ar[i]["hard_snippet"]
+        ):
             if len(ar[i]["hard_snippet"]):
                 if "semantic" in ar[i].keys():
                     st.error(ar[i]["hard_snippet"])
@@ -149,16 +160,17 @@ def clouds_big_words(sci_corpus):
         )
         big_words, word_counts_fz, fig_wl = art_cloud_wl(sci_corpus)
 
-verbose=0
-#def main():
+
+verbose = 0
+# def main():
 #    st.title("Search Reading Complexity of an Author")
 #    author_name = st.text_input("Enter Author Name:")
 #    st.markdown("""Entering a middle initial followed by ```.``` can change the accuracy of results.""")
 #    st.markdown("""Eg. Sayali S```.``` Phatak""")
-NAME = author_name="Brian H. Smith"
+NAME = author_name = "Brian H. Smith"
 
 if author_name:
-	ar, author_score, scraped_labels = check_cache(author_name,verbose)
+    ar, author_score, scraped_labels = check_cache(author_name, verbose)
 if "ar" in locals():
     df_author, merged_df = data_frames_from_scrape(
         ar, author_name, scraped_labels, author_score, art_df
@@ -181,11 +193,11 @@ if "ar" in locals():
     )
     st.write(fig_art)
 
-    #df_concat_art = pd.concat([art_df, df_author])
-    #fig_art = px.box(
+    # df_concat_art = pd.concat([art_df, df_author])
+    # fig_art = px.box(
     #    df_concat_art, x="Origin", y="Reading_Level", points="all", color="Origin"
-    #)
-    #st.write(fig_art)
+    # )
+    # st.write(fig_art)
 
     df0 = df_concat_art
     st.markdown(
@@ -223,13 +235,13 @@ if "ar" in locals():
         grab_set_auth.extend(paper["tokens"])
     artset = list(grab_setr)
     artset.extend(not_want_list)
-    #auth_set = grab_set_auth
-    #exclusive = [i for i in grab_set_auth if i not in artset]
+    # auth_set = grab_set_auth
+    # exclusive = [i for i in grab_set_auth if i not in artset]
     fig = fast_art_cloud(grab_set_auth)
     hard = show_hardest_passage(ar)
 
     st.markdown("-----")
-    #fast_art_cloud(sci_corpus)
+    # fast_art_cloud(sci_corpus)
     clouds_by_big_words = True
     if clouds_by_big_words:
         grab_set_auth = []
@@ -238,7 +250,7 @@ if "ar" in locals():
                 grab_set_auth.extend(paper["tokens"])
         sci_corpus = create_giant_strings(grab_set_auth, not_want_list)
         clouds_big_words(sci_corpus)
-        #except:
+        # except:
         #    pass
 
     if verbose:
@@ -298,16 +310,15 @@ if "ar" in locals():
     # st.markdown('Here is one of the biggest words: "{0}", you should feed it into PCA of word2vec'.format(str(big_words[0][0])))
 
     st.markdown("-----")
-    #st.markdown("\n\n")
+    # st.markdown("\n\n")
 
     # inclusive = [i for i in autset if i in artset]
-    #st.markdown(
+    # st.markdown(
     #    "### Concepts that differentiate {0} from other science".format(
     #        author_name
     #    )
-    #)
-    #exclusive = create_giant_strings(ar, exclusive)
-
+    # )
+    # exclusive = create_giant_strings(ar, exclusive)
 
     if "reading_time" in ar[0].keys():
         average_reading_time = [np.mean([r["reading_time"] for r in ar])]
@@ -343,9 +354,7 @@ if "ar" in locals():
     )
     st.markdown("-----")
     st.markdown("\n")
-    st.markdown(
-        "[Code Author: Russell J. Jarvis](https://github.com/russelljjarvis/)"
-    )
+    st.markdown("[Code Author: Russell J. Jarvis](https://github.com/russelljjarvis/)")
 
     st.markdown(
         "[Source Code: Github](https://github.com/russelljjarvis/ScienceAccess)"
@@ -374,8 +383,8 @@ if "ar" in locals():
 	Kutner M, Greenberg E, Baer J. National Assessment of Adult Literacy (NAAL): A First Look at the Literacy of America’s Adults in the 21st Century (NCES 2006-470). Washington, DC: National Center for Education Statistics; 2005.
 	"""
 
-    #st.markdown("-----")
+    # st.markdown("-----")
 
 
-#if __name__ == "__main__":
+# if __name__ == "__main__":
 #    main()