add integrate, not tested