First pass. Seems to mostly work. Havent tested array or dict values.