Added a bunch of documentation and design ideas