Now accepts JSON payloads