set file function done, interface still messy