Plugin Architectures - Achieving the Open/Closed Principle Through Abstraction | OneNoughtOne