design 2(almost done)