added base64 encoder