updating design pattern