This is overly complicated for an uplaod