Implementing an Extensible Application