Design and implement

Design and implement