updated the integration constructor to abstract more cases