todo : design pattern relation