This is a project for design pattern (Will be update in future)