making keepalive timer private
adding toString serialization