mostly changes so that iodocs works correctly
slight adjustment how I handle non-array data