Plugin-based application. Best practices?