To make it look nicer and easier to change in the future if one of the board types get incompatible with your code and promote 3rd party board implementation development, you should have a main plugin and implement the functionality for each board in a separated one. Each plugin would have a BeginCache function and all those necessary and would register itself in the main plugin with a function like registerBoard("ipb","beginCache").