Re-factored requests into a more extendable set of classes

Re-Organized the packages into different protocols

Updating some license info, refactored some classes