update many things and add file support