Gigantic refactor. Pulled server communication into new SymSocket class. Added some parameter checking. Renamed items to match standard conventions. Added small tests, more tests needed.