update the integration class

@karlnapf 
Please merge this first.
I will send the class hierarchy once you suggest the way to do class design. (I have sent my idea in the `first version PR` and I am waiting for your respond)
Thanks again for your patience to help me go through the class design process.