Use single package to hide more implementation; javadoc improvements;  separate server and client options
Make Control an abstract class that cannot be instatiated outside the package