I think you should look at how the driver structures for PIOS_COM work with a structure of function handles.  That will give you a better sense of how to swap between follower systems and force a consistent API.