Refactor

Broke the ferret lib into multiple files
Added unit tests
Added monitor class
Added hash class
Cleaned up lots of code