Restructured the marshaller to be able to return message and requestID separatly
Change the function names to better reflect their meaning
Made a skeleton to be able to handle non-idempotent operations securely.