Initial Commit - YAY!

TODO: Make several communication classes generic interfaces.
Few bug edits
Merge remote-tracking branch 'origin-notes/master'