Refactored SASL Implementation and moved it to sasl.go