refactor download to inherit from Action::Base
refactor Action#upload into Command::Upload