Making integration more generic