2 possible program modes, server and client + unit tests.