some extra work to integrate with each other