design pattern framework c