Shouldn't we return early if !address? Here we only check *after* the offset function has been generated, i.e. very late.