refactored history to match how we use it better
added some unit tests
added ability to run multiple servers - you do need to specify ports though for several functions
more todos