Implementaion of different Design patterns