add checking for str type in msg publish. Attempt JSON serialization if not string
add docstrings
update TODOs