add JSON serialisation for maps