added more options for data.frames and lists, passed checks