boost your c with behavioural design patterns