added Campaign tests and refactored the Clinet tests
made some enhancements and fixed some bugs that I found as a result of writing tests...unit tests ftw!