skeleton upload/download functions