use file prereqs properly, to avoid rebuilding when unnecessary