Learning design patterns. Keep basic skeleton and basic rules of each design patterns.