original starting point thanks to sjrf8c@mail.umsl.edu
non-functional requirements thanks to mwfb8@mail.umsl.edu