added Adapter and Facade paterns.