modify design pattern construct