abstracted vsftp.update