Factor out bundle file-handling logic into new Builder class