Implement download and abstract upload handler