add primitive file downloading