design 2 is implemented