changed receive to use case rather than match for final matching
match Quasar's refactoring
added gen-server + tests; join unwraps exceptions