restructure JsonComposer and add base64 binary support