Added some share knowledge functions, still more to be done. Made some menu functions more modular

Please if someone can check to see if this compiles I would appreciate
it. If it does please push these changes into the main project. I am
trying to avoid compiler conflicts by doing this.