moved authentication from connection to server allowing the use of channels and protocols for authentication. Still need to work on making it more performant.