implement download plugin