File transfer framework