with a myriad of integrations now, we should be in a position to identify patterns and abstractions between integrations lets see how we can simplify and clean up the sdk to make it more maintainable and extensible for the future :)