Added front controller, factory method, strategy patterns.