this should be called NewFromMap, but I don't see why we need it.. what should have the right to create a context from a map? we create a context with .New, send it over the network with .MarshalJSON and decode it back to a  context with .UnmarshalJSON.. I don't see where in that process there's a need to construct a context from a map