Added public private key encryption between client and server for initial communication and password exchange
Added more docstrings