self learning for design pattern.