add base64 encoding function