Support for List and Map

in line with my question above about  moving `optional` handling into this method: what happens if we want to write out `Option[Option[String]]`?