massively simplify plugin api maintainence by using a single definition for internal and external data structures